Chrome 使用与 Visual Studio 不同的 localhost SSL 证书

the*_*gel 8 c# ssl google-chrome visual-studio asp.net-core

VS 2019 16.5.0 Preview 5 Windows 10 Chrome 版本 80.0.3987.163(官方版本)(64 位)

我用谷歌搜索了这个并无法找到答案。

我正在尝试在本地主机上运行一个带有 TLS 的简单 asp.net core MVC 应用程序。

我所做的是创建一个新项目,然后在项目设置中启用 SSL 并将获得的 URL 复制为应用程序 URL 在此输入图像描述 在此输入图像描述

应用程序正常启动但 TLS CA 不可信?我按照这里的示例:/sf/answers/3415306191/并添加了经过认证的位于Personal/Certificates文件夹中来Trusted Root Certification Authorities - Certificates管理计算机证书,现在显示 CA 是受信任的。

我重新加载应用程序,发现 Chrome 使用的 localhost SSL 证书与我的计算机上注册的证书不同,因此 CA 仍然不受信任。 在此输入图像描述 在此输入图像描述

dot*_*der 17

就我而言,这有效:

  1. 清理旧证书并生成新的受信任证书。运行下面列出的命令:

    dotnet dev-certs https --clean

    dotnet dev-certs https --trust

  2. 转到 %APPDATA%\Microsoft\UserSecrets 并删除所有目录

  3. 重新运行应用程序。现在运行应该不会出现 SSL 错误

来源:https ://joeblogs.technology/2021/11/neterr_cert_date_invalid/


the*_*gel 10

我发现了这个问题:

在此输入图像描述

基本上,无论出于何种原因,我在我的商店证书上安装了本地主机LocalComputer。这让我认为 Visual Studio 创建了它,实际上 VS 在存储中创建了证书CurrentUser,如dotnet repo 中的开放代码所示
通常,VS 生成 TLS 证书的过程预计如下所示:

  1. .NET 项目被标记为 HTTPS,并且您尝试运行它。

  2. VS 检查存储中是否存在证书CurrentUser,如果不存在则要求创建一个

  3. 用户单击“是”,创建证书,最初证书安装在CurrentUser/Personal/Certificates store

  4. 然后 VS 发现您在 中没有本地主机证书CurrentUser/TrustedRootCA/Certificates,并提示您是否要安装一个,您单击 YES - 一切都完成了。

现在,如果由于某种原因你像我一样......并且你的CurrentUser/Trusted Root Certification Authority/Certificates只读。然后你会得到以下代码行:

           case EnsureCertificateResult.FailedToTrustTheCertificate:
                reporter.Warn("There was an error trusting HTTPS developer certificate.");
Run Code Online (Sandbox Code Playgroud)

因为第四步失败了......

为了缓解这种情况:

  1. 打开CurrentUserLocalComputer商店。您可以按照此Microsoft 指南来执行此操作,或者只需在“开始”中键入certlm.msc和即可。certmgr.msc
  2. 右键单击存储中的本地主机证书上的“导出” CurrentUser,然后使用默认选项将其导出
  3. 尝试在商店的“受信任的根证书颁发机构/证书”文件夹中导入相同的证书CurrentUser
  4. 如果步骤 3 失败(应该如此,因为否则您就不会陷入这种困境),请将您的证书导入到商店的“受信任的根证书颁发机构/证书”文件夹中LocalComputer

现在一切都应该正常了。希望你不会像我一样花 6 个小时在这上面。