【VisualStudio2015/2017】IIS Expressでのデバッグ時に 「SSLを有効にする」が動かない時の直し方
.NET CORE MVCの勉強中、
VisualStudio2017のIIS Expressでのデバッグ時に、
「SSLを有効にする」オプションを選択してもうまく動かなくて詰まった。
検索してみると誰もこんな所で詰まっていない。(泣)
困った。直せたのでここに残しておく。
問題:
「デバッグ」->「Webサーバーの設定」から「SSLを有効にする(S)」をチェックしてもSSLが有効になってくれない。
ブラウザで開くと、以下のメッセージが表示される。
localhost から無効な応答が送信されました。
・InternetExplorer
このページに安全に接続できません
解決法:
プロジェクト配下applocationHost.configを修正し、デバッグ時に使われるポートの競合を解決した。
→C:\Users\LocalUser\source\repos\SampleProject\.vs\config\applocationHost.config
修正前
<binding protocol="http" bindingInformation="*:44381:localhost" />
<binding protocol="http" bindingInformation="*:44382:localhost" />
<binding protocol="https" bindingInformation="*:44382:localhost" />
修正後
<binding protocol="http" bindingInformation="*:44381:localhost" />
<binding protocol="https" bindingInformation="*:44382:localhost" />
原因:
設定ファイル内が以下のようになってしまいポートが競合してしまっていた。
httpとhttpsのポートを1番違いにしようと思って、
「デバッグ」->「Webサーバーの設定」の「アプリURL」を変更する時に
「SSLを有効にする(S)」のURLをコピペし、最下位一桁をいじった。
結果、設定ファイル内が以下のようになってしまいポートが競合してしまっていた。
メモ:
古いバージョンVisualStudio時代は以下のようにSSL証明書をローカルにインストールしたり、applocationHost.configに設定を追加する必要があったようだ。
今(VisualStudio 2017 + IIS 2018年4月時点最新)では多分しなくていい。
・applocationHost.configにバインド登録
お楽しみはこれからだ!: IIS ExpressでSSLを有効にしてデバッグ
・How to trust the IIS Express Self-Signed Certificate
How to trust the IIS Express Self-Signed Certificate – Robert McMurray's Blog [MSFT]
収穫:
この問題にぶち当たって(多分日本で僕だけだと思うけど…)、
VisualStudio2017ではapplocationHost.configの場所がプロジェクトごとに分離されたという事を学んだ。
※昔はIIS Express配下→「%USERPROFILE%\Documents\IISExpress\config\applicationhost.config」だった)
まとめ:
余計なことはするな