つよつよにあこがれるプログラマの日記

子育てとかプログラムとか日々の事をここに残します。ぼちぼちやってます。

【VisualStudio2015/2017】IIS Expressでのデバッグ時に 「SSLを有効にする」が動かない時の直し方

.NET CORE MVCの勉強中、

VisualStudio2017のIIS Expressでのデバッグ時に、

SSLを有効にする」オプションを選択してもうまく動かなくて詰まった。

検索してみると誰もこんな所で詰まっていない。(泣)

困った。直せたのでここに残しておく。


問題:

デバッグ」->「Webサーバーの設定」から「SSLを有効にする(S)」をチェックしてもSSLが有効になってくれない。

ブラウザで開くと、以下のメッセージが表示される。

GoogleChrome

 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」だった)

 

まとめ:

余計なことはするな