欠落しているIIS Express SSL証明書を復元するにはどうすればよいですか?


134

IIS ExpressでHTTPSを設定した後、このような記事によると、このこれ、私が実際にHTTPSを使用してIIS Expressのサイトを読み込むことができません。ではクロム、私は取得しています:

このウェブページは利用できません(エラーコード "ERR_CONNECTION_RESET"が表示されます)

...そしてIEでは私だけが得ています:

インターネット・エクスプローラーがウェブページを表示できない

...これらの記事の指示に従うとき。

これは、IIS Expressが自動的にインストールする「IIS Express開発証明書」が削除されていることに関係しているようです。この証明書を再インストールする方法を教えてください。


2
また、(44300から44399の範囲外の任意のポートで実際または)ポート443でIISExpressを実行しようとしている私に起こった
ヘラルドGrignoliを

注:この質問に対する受け入れられた回答は、IIS Express localhost証明書が存在し、問題がないように見える場合にも適用されます。
ヘイマンズフィールド

Visual Studio 2017については、stackoverflow.com
questions / 44142037 /…を

回答:


193

[プログラムの追加と削除]に移動し、IIS Expressの[修復]オプションを選択すると、証明書が再インストールされ、HTTPSを使用してIIS Expressサイトを起動できるようになりました。

IIS Expressを修復する

証明書が戻ってきました:

IIS Express開発証明書

これで、HTTPSを使用してIIS Expressサイトを起動できます。

成功!


1
私にとってもうまくいきますが、私の場合、証明書はそこにありました。理由は不明ですが、同じエラーが発生しました。だから私は証明書を削除し、「修復」してこれを再インストールし、出来上がりました。どうもありがとう。
ダライアス

37
Windows 10ユーザーへの注意:修復はコントロールパネルにのみあり、プログラムの追加と削除アプリにはありません。素晴らしいアイデアmsft。
Chris Weber

1
より迅速な方法は、Jexus Managerを起動して新しい証明書を生成し、サイトにバインドすることです。jexusmanager.comもちろん、壊れた証明書のバインディングはまだ修正されていません。ワンクリック機能にする方法を見ていきます。
Lex Li

修復は機能しましたが、MMCを使用して既存の証明書を削除する必要がありました。私が遭遇した問題は、localMachineから管理者としてそれらを削除していないことでした。管理者特権でMMCを実行していることを確認してください!
ranieuwe

6
VS2019ユーザーへの注意:Visual StudioインストーラーはMSIファイルをコントロールパネルが想定する場所に配置しないため、「修復」は機能しません。ただし、_package.json 同じディレクトリにファイルがあり、MSIファイルのURLが含まれています。手動で実行するか、コントロールパネルが予期する場所にコピーすることができます。
クリスR.ドネリー

156

Visual Studio 2015、IIS Express 10、Windows 10では、これらのオプションは機能しませんでした。IIS Express 10には修復オプションがありませんでした。

にあるIisExpressAdminCmd.exeコマンドを使用して問題を解決することができましたC:\Program Files (x86)\IIS Express

管理者特権のコマンドプロンプトから次を実行します。

cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:urlToYourSite -UseSelfSigned

urlToYourSiteを自分のURLに置き換えます。

例えば

cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:44387/ -UseSelfSigned

その後、IIS Expressを閉じてVisual Studioからサイトを再起動すると、自己署名証明書を自動的に信頼するように求められました。

お役に立てば幸いです。


3
これは、ポート443 1でIISExpressを実行しようとしている私のために働いた
ヘラルドGrignoli

このソリューションは私にとってはうまくいきました。Windows 10、Visual Studio 2015、IIS Express 10
Glenn

1
IIS Expressが使用する特定のポートを取得する際に問題が発生している場合は、そのポートを使用してIISに登録されているサイトがあるかどうかを確認できます。今日は私の一日でした。
Chris Marisic

2
Windows 10では、IIS Express 修復オプションがあります。コントロールパネルを通過する必要があります。受け入れられた答えは私のために働いた。
joerage 2017年

1
コマンドラインを使い慣れていない場合は、Jexus Managerを使用して同じことを行うことができます。blog.lextudio.com/
Lex Li

40

このエラーは、localhostにインストールされている別の証明書が原因で発生する場合があります。その場合は、IIS Express証明書を復元する必要はありません。代わりに、次のようにして、既存の証明書を使用するようにIIS Expressに指示できます。

  1. ここで説明するように、証明書MMCスナップインを開きます。
  2. たとえば、Personal ... Certicatesの下でlocalhost証明書を見つけ、その拇印を取得します。
    1. localhost証明書のプロパティダイアログを開き、Thumbprintプロパティを見つけます。
    2. 拇印の値をメモ帳(またはその他)に貼り付け、先頭のスペースと特殊文字を削除します
  3. IIS Expressプロジェクトのポート値を見つけます。
    1. Visual Studioのプロジェクトプロパティに移動して、「SSL URL」の値を見つけます(例:「https:// localhost:44300 / MyApp」)。
    2. この例では、44300がポート番号です。値が異なる場合は、後のコマンドでその値を変更してください。
  4. (Powershellではなく)管理コマンドプロンプトで次のコマンドを使用します。

netsh http delete sslcert ipport=0.0.0.0:44300

netsh http add sslcert ipport=0.0.0.0:44300 certhash=your_cert_hash_with_no_spaces appid= {123a1111-2222-3333-4444-bbbbcccdddee}

上記のコマンドのGuidは、生成したものと置き換えることができます。既存のIIS Express値には対応していません。

詳細については、IIS ExpressでのURLバインドエラーの処理を参照してください。


2
より視覚的な方法は、Jexus Manager、blog.lextudio.com /…を使用することです。そうすれば、証明書ハッシュのような詳細を覚える必要はありません。
Lex Li

「パラメータが正しくありません」と表示された場合。エラー-このappidを最初に使用してから、certhashを使用してください。例:netsh http add sslcert ipport = 0.0.0.0:44300 appid = {C21B9F4D-2A5D-4160-81C8-FBCC3EFC335E} certhash = your_cert_hash_with_no_spaces
gmsi

36

IIS ExpressがSSLで動作するためには、使用されるポートが44300から44399の範囲内である必要があることにも注意してくださいhttp://www.iis.net/learn/extensions/using-iis-express/running-iis-express-管理者権限なし)。

したがって、Visual StudioでIIS Expressを使用している場合は、選択したポートが必要な範囲内にあることを確認し てください。vsiis expressの設定


3
バーニーホワイトの回答のコマンドを使用した後、問題なくこの範囲外のポートを使用できました。Windows 10 / Visual Studio Community 2015 / .Net Core 1.0.1 / IIS Express 10.0
Ryan Thomas

1
ありがとう!これで問題は解決しました。Visual Studioがそのことを警告しないのは奇妙です。
Erwin Mayer

4
44300〜44399は、証明書がマップされたデフォルトのポート範囲です。を呼び出すnetshか、Jexus
Lex Li

12

新しいChrome 58では、以下の回答のどれも役に立ちません。証明書をアンインストール/再インストールして、問題がどこにあるかを見つけるのに1時間費やしました。

「missing_subjectAltName」が原因でChrome 58が証明書を拒否するようです

解決策は「badidea」パスフレーズであるか、ログインのためにポップアップを開く必要がある場合は、以下を使用する必要があります。

chrome:// flags /#allow-insecure-localhost

ソースはであり、賛成投票はhttps://stackoverflow.com/a/38926117/2089232に属しています :)




2

ばかげていますが、誰かを助けるかもしれないので、これを追加したかったのです。これまでにプロジェクトのプロパティを開いたことがなかったため、これがどのように発生したかはわかりません(自分で変更したり、変更したりする機会はありませんでした)。しかし、httpsの代わりにhttpとして(以前は動作していたため、以前はhttpsでした)。このページにリストされているすべての手順を実行し、VS、次にIISをアンインストールし、https:// mySSLURLであるはずのエラーに最後に気付きました(ただし、httpsにsがありませんでした)。httpをhttpsに変更すると、すべてが再び機能しました。



0

VS 2017を最新バージョンに更新し、新しい(.Net)MVC / WebAPIプロジェクトを(テンプレートから)作成した後、この問題が発生しました。ポート番号を正しい範囲内に調整することでこれを修正できました

DEV SSLのChormeのデフォルトのポート範囲

私がここで見つけることができたもの:https : //www.pluralsight.com/guides/visual-studio-2017-resolving-ssl-tls-connections-problems-with-iis-express

お役に立てれば!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.