web-dev-qa-db-ja.com

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

thisthis などの記事によると、IIS ExpressでHTTPSを設定した後、IISを実際にロードできません_ HTTPSを使用した高速サイト。 Chromeでは、私は次のものを取得しています:

このWebページは利用できません(エラーコード「ERR_CONNECTION_RESET」)

...そしてすなわちでしか得られない:

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

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

これは、IIS Expressが自動的にインストールする「IIS Express開発証明書」が削除されたことに関係しているようです。この証明書を再インストールするにはどうすればよいですか?

122
Chris Simmons

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

Repair IIS Express

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

IIS Express Development Certificate

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

Success!

179
Chris Simmons

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

C:\Program Files (x86)\IIS Expressで利用可能なIisExpressAdminCmd.exeコマンドを使用して問題を解決できました。

管理者特権のコマンドプロンプトから:

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からサイトを再起動すると、自己署名証明書を自動的に信頼するように求められました。

それが役に立てば幸いです。

127
Bernie White

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

  1. 説明に従って、証明書MMCスナップインを開きます here
  2. ローカルホスト証明書を見つけます。パーソナル...証明書の下で、thumb印を取得します:
    1. Localhost証明書のプロパティダイアログを表示し、Thumbprintプロパティを見つけます
    2. Thumb印値をメモ帳(またはその他)に貼り付け、先頭のスペースと特殊文字を削除します
  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バインディングエラーの処理 を参照してください。

33
explunit

また、IIS ExpressがSSLで機能するためには、使用するポートが44300から44399の範囲にある必要があることに注意してください( http://www.iis.net/learn/extensions/using- iis-express/running-iis-express-without-administrative-privileges )。

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

29
Shiraz

新しいChrome 58では、以下の回答からは何も役に立ちません。証明書のアンインストール/再インストールと、問題の場所の特定に1時間を費やしました。

「missing_subjectAltName」のため、Chrome 58は証明書を拒否するようです。

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

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

ソースは、アップ投票は次のものに属します: https://stackoverflow.com/a/38926117/2089232 :)

11
milanio

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

1
Elijah Tate

IIS Express 10.0(または必要なバージョン)を再インストールして、欠落している証明書を修正できます。 ここからマイクロソフトからダウンロード

0
TetraDev