我刚刚再次开始处理一个大约一个月没有接触过的 .NET 项目,突然在我的本地主机环境中,当我尝试启动我的应用程序时,出现了 ERR_CERT_AUTHORITY_INVALID 错误。我使用 dotnet dev-certs 命令重新生成 localhost 证书,但奇怪的是 Chrome 似乎是从其他地方获取此 localhost 证书。在“开发人员工具”窗格中,我看到了这一点(注意有效期):
我不知道为什么它显示无效的有效期,因为我今晚刚刚生成了一个新的本地主机证书,并且今晚我已经多次破坏了 Chrome 的 SSL 缓存。以下证书出现在 certmgr 的“个人”>“证书”和“受信任的根证书颁发机构”部分中。
有人可以帮助我理解为什么 Chrome 认为我的本地主机证书来自无效的权威机构以及如何纠正这个问题吗?最后一个有效版本来自完全相同的位置(尽管我认为可能是其他东西生成的,因为我不记得使用 dotnet dev-certs CLI 命令来创建原始证书)。
我花了很多时间寻找解决方案,终于按照以下步骤解决了。希望这能节省您的时间。
chrome://settings/
。Privacy and security
> Security
> Advanced
> Managed Certificates
这实在是太愚蠢了。在昨晚浪费了几个小时和今晚一两个小时尝试在博客等中找到的修复之后,类似 StackOverflow 问题的答案表明我应该尝试修复我的 Visual Studio 安装。果然,这样做解决了问题。
修复 Visual Studio 安装并加载遇到 HTTPS 问题的项目后,我从 VS2022 收到一个如下所示的对话框(从 bing.com/images 剪下来,因为我在尝试修复此问题时关闭了对话框)我选择了“是”。
这添加了一个新证书,但奇怪的是,它仅将其添加到 certmgr 中的受信任根证书颁发机构,而不是个人,而我从 dotnet dev-certs CLI 命令生成的证书创建了两个;一个在“受信任的根证书颁发机构”中,另一个在“个人”中。下面的屏幕截图显示了两个证书; “IIS Express 开发证书”是解决该问题的证书,也是通过修复 VS2022 创建的证书。
不知道为什么VS2022证书过期后没有提示我续订。从好的方面来说,假设这个问题在 Visual Studio 的未来迭代中永远不会得到解决,在经历了这次经历之后,我确信到 2027 年 10 月 3 日,我会记住今天发生的一切,并且我必须修复我的如果我想避免由于本地主机 SSL 证书过期而浪费时间,请安装 VS20XX。
对我来说,证书问题是
happening ONLY for one project
。经过不同的排列组合,我发现问题是由于项目秘密中的一个值引起的。发现项目中额外插入了以下值secret.json
{
"Kestrel:Certificates:Development:Password": "d24802d4-8528-4599-8086-9895359360f8"
}
问题不在密码值中,而是条目本身是
culprit
。希望这能拯救某人的一天。