概要
Visual StudioのASP.NET Coreのプロジェクトで実行したときに表示される、証明書の信頼やセキュリティ警告に関するメッセージの意味を調べてみました。
ASP.NET Core SSL証明書を信頼する
意味
ASP.NET Core プロジェクトを初めて https://localhost で起動しようとした際に表示される、Visual Studioが出しているメッセージです。
具体的には、Visual Studio が開発用の自己署名 SSL 証明書を信頼するかどうかを確認するために表示します。
開発環境(https://localhost)では本物の認証局(CA)が発行した証明書を使うのではなく、ASP.NET Coreが自動で生成した自己署名証明書を使用します。ただその証明書を Windows に信頼させるには、ユーザーの同意が必要なので、初回起動時に「信頼しますか?」というダイアログを表示しているイメージです。
このメッセージはローカル開発環境専用のメッセージなので、本番環境には関係ありません。
操作
「はい」を選ぶと、その証明書が Windows の証明書ストアに登録されて、以降はブラウザで警告が出なくなります。
「いいえ」を選ぶと証明書は信頼されず、ブラウザでアクセスすると「この接続は安全ではありません」といった警告が出続けます。
なのでローカル開発で HTTPS を使いたいなら「はい」を選ぶのが通常になります。
セキュリティ警告
意味
Windowsの証明書ストア(証明書管理機能) が出しているメッセージです。Windows OS 自体が「この証明書を信頼してよいか?」という判断をユーザーに委ねるために表示しています。
タイミング的には、Visual Studioが自己署名証明書(localhost)を 「信頼されたルート証明機関」 にインストールしようとしたときに表示されます。証明書は「localhost」という名前で発行されていて、ルート証明書(信頼の起点になる証明書)として登録しようとしている状態です。
- 警告文にある通り「この証明書を信頼すると、今後この発行者が作る証明書は自動的に信頼される」ことになります。
操作
「はい」を選ぶと、ブラウザでhttps://localhost:xxxxにアクセスしても警告が出なくなります。
ローカル開発で HTTPS を使うなら「はい」を選ぶのが一般的です。
ただしこれはあくまで「開発用の証明書」であり、本番環境では必ず正式な認証局(CA)が発行した証明書を使う必要があります。
終わりに
どちらのメッセージも「開発環境でhttps://localhostを使うために、自己署名証明書を信頼させる必要がある」ことから出ています。
流れ的には、Visual Studio が依頼 → Windows が最終確認という二段階チェックになっています。

