先日、Visual Studio Codeで.Net Coreのデバッグをしようとしたところ、次のようなエラーが発生しました。
例外が発生しました:CLR/System.invalidOperationException
型’System.InvalidOperationException’のハンドルされていない例外がSystem.Private.CoreLib.dllで発生しました:
Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found.
少し前まではまったく問題がなかったので、原因に心当たりもなく、困ってしまいました。
色々と環境を作り直したりもして、ようやく解決方法がわかったので、メモとして残しておこうと思います。
そんなわけで、今回は「Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found」が発生した場合の解決法についてご紹介しますね。
ちなみに、この時の私の環境は以下の通りです。
- OS:Windows10
- VS Code:1.43.0
- Node.js:10.15.3
- .NET Core SDK:2.2.104
「Unable to configure HTTPS endpoint. ~」の原因は開発証明書にあった!
同じ環境で開発をしている同僚に確認したところ、彼は問題なく環境を構築できていました。
何が違うのかなと思ったのですが、そういえば、私が環境を作ったのは1年くらい前で、彼が環境を作ったのは半年くらい前だったことを思い出しました。
エラーをよく見れば「the default developer certificate could not be found」とあります。
もしかしたら開発者用の証明書が怪しいのではないかと思いつき、Windows系で証明書って何かあったかなと探してみると以下のような文章が。
.NET Core SDK には、HTTPS 開発証明書が含まれています。 証明書は、最初の実行エクスペリエンスの一部としてインストールされます。
ASP.NET Core に HTTPS を適用する:Windows および macOS で ASP.NET Core HTTPS 開発証明書を信頼する
.NET Core SDK をインストールすると、ローカル ユーザーの証明書ストアに ASP.NET Core HTTPS 開発証明書がインストールされます。 証明書はインストールされていますが、信頼されていません。 証明書を信頼するには、1回限りの手順を実行して dotnet dev-certs ツールを実行します。
これだ!!
私も.NET Core SDKを使っています。
試しに急いで証明書を再度信頼してみたところ、無事にエラーが解消されました!
ということは、おそらく信頼していた開発証明書が期限切れなどになっていたのでしょう。
少し時間はかかりましたが、解決して良かったです。
次は解決方法についてご紹介しますね。
「Unable to configure HTTPS endpoint. ~」の対応方法
さて、それでは「Unable to configure HTTPS endpoint. ~」というエラーを解消する方法をご紹介します。
このエラーが出る場合は証明書が信頼されていないということですので、次のコマンドを実行してください。
dotnet dev-certs https --clean
dotnet dev-certs https --trust
Microsoftのドキュメントによると、このコマンドでほぼ解決できるそうです。
私の場合もこのコマンドで対応できました。
それでもまだエラーが解消されないという場合は、公式ドキュメントを参照して追加の対応をしてみてください。
DockerやOS Xでの解消法も記載されていますよ。
ちなみにstackoverflowにも質問がありました。
参考:Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found
実は公式ドキュメントにたどり着く前に発見していたのですが、本当に回答にあるコマンドで良いのか自信が持てず、後回しにしていたのです。
まあ、公式ドキュメントの記事も読むことができたので、時間はかかりましたが結果的には良かったかなと思います。
終わりに
今回は「Unable to configure HTTPS endpoint. ~」というエラーが発生した場合の対処法についてご紹介しました。
本日のまとめです。
- 以下のコマンドを実行して開発証明書を再度信頼すればOK。
dotnet dev-certs https --clean
dotnet dev-certs https --trust
今回苦労したので、次回からはサクッと解決できると思います。
今回はここまでです。それでは。