在Windows 10/11上,在VisualStudio2017-2022中,当通过HTTPS与Kestrel或IIS为web提供服务时,Visual提示我信任ASP.NET核心生成的自签名证书。
如果单击“是”,将收到以下错误:
将证书添加到受信任的根证书存储区失败,出现以下错误:信任证书失败。(运行Kestrel)或访问被拒绝。(运行IIS)
通过Chrome导航到swagger页面,验证证书确实无效,并且连接不安全。
运行dotnet dev-certs https --trust
将导致
信任HTTPS开发人员证书时出错。
在certmgr中,我可以看到ASP.NET核心HTTPS开发证书已经安装在当前用户/个人-store中。我还看到了受信任的根证书颁发机构-store,以及内部的证书。
如果我试图将证书拖放到受信任的根证书颁发机构-store,则会收到以下错误消息:
无法将证书粘贴到受信任的根证书颁发机构-store中。访问被拒绝。
如果我试图将证书导入到上述存储区,则会收到以下错误消息:
导入失败,因为存储是只读的,存储已经满,或者商店没有正确打开。
如果我试图通过'Install certificate' -> 'Current User' -> 'Place all certificates in the following store' -> Browse
从导出的文件中安装证书,则根本看不到受信任的根证书颁发机构-store。
如果选择'Certificates - Current User' -header, go to View -> Options, and enable 'Physical certificate stores'
,则可以将证书拖放到物理存储Trusted Root Certification Authorities/Local Computer/Certificates
中。
证书现在可以在受信任的根证书颁发机构存储中看到,但是Visual仍然引发相同的错误,浏览器认为证书不受信任,dotnet dev-certs https --check --trust
输出:
未找到有效证书。
如果我以个人身份保存原始证书,则在没有私钥的情况下导出该证书,并将导出导入到物理存储Trusted Root Certification Authorities/Local Computer/Certificates
中,dotnet dev-certs https --check --trust
打印:
找到了可信证书:.
...but浏览器仍然认为证书无效,Visual抛出错误。
与dotnet run
相同的结果,在Visual中没有信任错误。似乎dotnet不检查或试图信任证书。
相同但不同:如果我从Chrome中保存证书并试图通过Chrome -> Settings -> Privacy and security -> Manage certificates -> Trusted Root Certification Authorities -> Import
将其添加到受信任的根证书颁发机构,我还会收到:
导入失败,因为存储是只读的,存储已经满,或者商店没有正确打开。
我已经没有东西可以去尝试了,我可能错过了一些基本的东西。我该怎么办?
发布于 2022-01-17 12:11:41
因此,当我删除用户和机器存储中的所有本地主机证书并重新安装IIS时,进程中安装了错误的本地主机证书,我需要再次删除它们,并将浏览器中可见的证书安装到本地计算机证书受信任的根证书存储区。
希望这对将来的人有帮助。总是检查你的序列号。
编辑:上面的解决方案不是永久性的,问题在不久之后返回。我相信我的Windows证书商店已经损坏,重新安装windows是最终解决问题的原因。很棒的东西。
https://stackoverflow.com/questions/70732981
复制相似问题