[Visual Studio 2017 RC]ASP.NET CoreでSSLを有効化するとエラーになった時
最近の流れとしてSSL(TLS)で保護されていないとWebにあらず的なやーつがあるので、ASP.NET CoreのアプリケーションもSSL化してみっかと思い対応してみました。
開発環境でも ASP.NET Core MVC の RequireHttps 属性を使えるようにする
http://blog.shibayan.jp/entry/20160718/1468774406
しばやん様の情報を元にポチッと対応してみて、起動してみると-
「アプリケーションがホストしている dotnet.exe のプロセスIDを特定しようとしてエラーが発生しました。1つ以上のエラーが発生しました。」と出て先に進まなくなりました…
Mainメソッドにブレイクポイントを貼っても飛んでこない…
ぐぐってみると、同じ症状で悩んでる方が!
Default MVC ASP.NET Core RTM cannot use IIS Express and SSL
https://github.com/aspnet/Mvc/issues/4950
どうやら証明書を入れたら解決したらしい…
英語の情報しかなかったので、残しておきます。
まずは、MMCを実行します。
起動したら何もないので-
ファイル(F)→スナップインの追加と削除(M)… Ctrl+Mを選択します。
利用できるスナップイン(S):から証明書を選択して追加(A) >ボタンを押下します。(証明書をダブルクリックでもOKです。)
コンピューター アカウント(C)を選択して次へ(N) >ボタンを押下します。
ローカルコンピュータ(L): (コンソールを実行しているコンピューター)がデフォルトで選択されているので、そのまま完了ボタンを押下します。
選択されたスナップイン(E):に証明書(ローカルコンピューター)が追加されるので、OKボタンを押下します。
証明書(ローカルコンピューター)→個人→証明書を選択すると、フレンドリ名:IIS Express Development Certificate、発行元:localhost、発行者:localhostの証明書があるはずです。
ない場合は、↓を参考に追加してください。
How do I fix a missing IIS Express SSL Certificate?
http://stackoverflow.com/questions/20036984/how-do-i-fix-a-missing-iis-express-ssl-certificate
このIIS Express Development Certificateを信頼されたルート証明機関へインポートします。
そのために、IIS Express Development Certificateを一度エクスポートします。
IIS Express Development Certificateを選択して右クリック→すべてのタスク(K)→エクスポート(E)…を選択します。
ウィザードが起動するので、次へ(N)ボタンを押下します。
いいえ、秘密キーをエクスポートしません(O)がデフォルトで選択されているので、そのまま次へ(N)ボタンを押下します。
DER encoded binary X.509 (.CER)(D)がデフォルトで選択されているので、そのまま次へ(N)ボタンを押下します。
エクスポート先を選択or入力して次へ(N)ボタンを押下します。(フォルダーやファイル名はなんでも大丈夫です。)
完了(F)ボタンを押下します。
OKボタンを押下します。
証明書(ローカルコンピューター)→信頼されたルート証明機関→証明書を右クリック→すべてのタスク(K)→インポート(I)…を選択します。
ウィザードが起動するので、次へ(N)ボタンを押下します。
先程エクスポートしたファイルを選択して、次へ(N)ボタンを押下します。
証明書をすべて次のストアに配置する(P)がデフォルトで選択されているので、そのまま次へ(N)ボタンを押下します。
完了(F)ボタンを押下します。
OKボタンを押下します。
IIS Express Development Certificateが追加されているのを確認します。
再起動して、Visual Studio 2017 RCからASP.NET Coreのアプリケーションが起動できることを確認します。
最初はなんじゃこれ!って感じでしたが、ぐーぐる先生すごいですね。