Visual Studio:“信任证书失败”

在 Windows 10/11 上,使用 Visual Studio 2017-2022,当通过 HTTPS 使用 Kestrel 或 IIS 提供 Web API 时,Visual Studio 提示我信任 ASP.NET Core 生成的自签名证书。

如果我单击“是”,我会收到以下错误:

将证书添加到受信任的根证书存储失败并出现以下错误:信任证书失败。 (运行 Kestrel)或访问被拒绝。 (运行 IIS)

通过 Chrome 导航到 swagger UI 页面验证证书确实无效并且连接不安全。

运行 dotnet dev-certs https --trust 会导致

信任 HTTPS 开发人员证书时出错。

从 certmgr 我可以看到 ASP.NET Core HTTPS 开发证书已安装在 Current User/Personal -store 中。我还看到了 Trusted Root Certification Authorities -store 和里面的证书。

如果我尝试将证书拖放到 Trusted Root Certification Authorities -store,我会收到以下错误消息:

证书无法粘贴到受信任的根证书颁发机构 - 存储中。访问被拒绝。

如果我尝试将证书导入所述商店,我会收到以下错误消息:

导入失败,因为存储是只读的、存储已满或存储未正确打开。

如果我尝试通过 'Install certificate' -> 'Current User' -> 'Place all certificates in the following store' -> Browse 从导出的文件安装证书,我根本看不到 Trusted Root Certification Authorities -store。

如果我选择 'Certificates - Current User' -header, go to View -> Options, and enable 'Physical certificate stores' ,我可以将证书拖放到实体店 Trusted Root Certification Authorities/Local Computer/Certificates

证书现在在 Trusted Root Certification Authorities 存储中可见,但 Visual Studio 仍然抛出相同的错误,浏览器认为证书不受信任,并且 dotnet dev-certs https --check --trust 输出:

未找到有效证书。

如果我将原始证书留在 Personal 中,则在不使用私钥的情况下将其导出并将导出导入到物理存储 Trusted Root Certification Authorities/Local Computer/Certificatesdotnet dev-certs https --check --trust 打印:

找到受信任的证书:...

...但浏览器仍然认为证书无效,并且 Visual Studio 会抛出错误。

dotnet run 的结果相同,在 Visual Studio 中没有信任错误。 dotnet CLI 似乎不检查或尝试信任证书。

相同但不同:如果我从 Chrome 保存证书并尝试通过 Trusted Root Certification Authorities 将其添加到 Chrome -> Settings -> Privacy and security -> Manage certificates -> Trusted Root Certification Authorities -> Import ,我还会收到:

导入失败,因为存储是只读的、存储已满或存储未正确打开。

我已经用完了可以尝试的东西,而且我可能缺少一些基本的东西。我应该怎么办?

stack overflow Visual Studio: "Failed trusting the certificate"
原文答案
author avatar

接受的答案

事实证明,虽然我确实删除了用户和机器存储中的所有 localhost 证书,并重新安装了 IIS,但在此过程中安装了某种错误的 localhost 证书,我需要再次删除它们,然后将浏览器中可见的安装到本地计算机证书受信任的根证书存储。

希望这对将来的某人有所帮助。始终检查您的序列号。

编辑:上面的解决方案不是永久性的,问题很快就回来了。我相信我的 Windows 证书存储已损坏,重新安装 Windows 是最终解决问题的方法。好东西。


答案: