web-dev-qa-db-ja.com

Visual Studio 2017では、「信頼されたルート証明書ストアへの証明書の追加が次のエラーで失敗しました」と表示されます

SSLモードをtrueに設定したASP MVCアプリケーションを実行しようとしています。アプリケーションを実行するたびに、IIS Express SSL証明書を信頼するようにプロンプ​​トが表示されます。 [はい]をクリックすると、「信頼されたルート証明書ストアへの証明書の追加が次のエラーで失敗しました。アクセスが拒否されました。」というエラーメッセージが表示されます。VisualStudio 2017を管理者モードで実行しています。 MMC。他の誰かがこの問題に遭遇していますか。

Error Screenshot

SOLN:これが私にとってうまくいったことです。すべてのローカルホスト証明書を削除しました。 repairを実行しましたIISプログラムの追加と削除でエクスプレス。Personal/ Certificateから信頼されたルート証明書にローカルホスト証明書をコピーして貼り付けました。

23
sanjeev

注:質問からOPの解を回答として追加します。

これは私のために働いたものです。すべてのローカルホスト証明書を削除しました。 repairを実行しましたIISプログラムの追加と削除でエクスプレス。Personal/ Certificateから信頼されたルート証明書にローカルホスト証明書をコピーして貼り付けました。

修復/再インストールIIS Expressはこの問題を実際に解決していないようです(IIS Express 10)の場合、実際の解決策はローカルホスト証明書をTrustedに追加することですRood証明書。

これを行う方法の詳細は、このブログ投稿で説明されています: https://blogs.iis.net/robert_mcmurray/how-to-trust-the-iis-express-self-signed-certificate

要約すれば、

  • コントロールパネルの[コンピューター証明書の管理]または​​cmdプロンプトでcertlmを実行して、証明書マネージャーを開きます。
  • Personal> Certificatesでlocalhost証明書をエクスポートし、ディスクに保存します
    • 秘密鍵をエクスポートしないでください!公開鍵をエクスポートするだけです。
  • [信頼されたルート証明機関]で、[証明書]を右クリックし、エクスポートしたばかりの証明書をインポートします
14
Chris Pratt

CMD> certlmを実行し、個人フォルダー内のローカルホスト証明書を削除するだけでうまくいきました。

8
user2988031

1週間(Win 10とVisual Studio 2019 Community Editionバージョン16.1.1を使用して)この問題に今苦労し、さまざまなソリューションを試した後、次のことがわかりました。

  • デフォルトでは、IISExpress 10のlocalhost証明書は次の場所にインストールされます。証明書(ローカルコンピューター)->個人

enter image description here

  • IISExpress 10(プログラム->プログラムと機能)を修復すると、新しいローカルホスト証明書も作成されます:証明書(ローカルコンピューター)->個人

  • 次に、以下を使用してファイルに保存することにより、その証明書をエクスポートします。

enter image description here

次に、その証明書をインポートします。証明書(ローカルコンピューター)->信頼されたルート証明機関

enter image description here

  • その後、 ser2988031 指摘:証明書から証明書を削除(ローカルコンピューター)->個人

また、「dotnet dev-crts https --trust」を使用しようとしましたが、それは私には機能せず、常に次のエラーを生成しました:

enter image description here

まとめると、証明書(ローカルコンピューター)にあるlocalhost証明書が1つだけ存在することをshureにしてください->信頼されたルート証明機関

更新:Webアプリケーションを数回修正した後、別のエラーが発生し、それを機能させるためにはプロセス全体を再度実行する必要があることに気付きました。

1
wosi

私のエラーは実際には「asp.net開発者証明書がインストールされていません」でしたが、この場合でも以下の解決策は機能すると思います。コマンドプロンプトで次のコマンドを実行します。

dotnet dev-certs https --trust --check
echo Trust check: %errorlevel%
dotnet dev-certs https --trust -ep "%APPDATA%\ASP.NET\https\TestCert.pfx" -p TestPassword
echo Trust/Export: %errorlevel%

参照: https://github.com/Microsoft/DockerTools/issues/147#issuecomment-420433974

0
piris