从 IdServer 成功获取令牌但证书错误

Getting successfully a token from IdServer but with certificate error

我有 created a trusted certificate 如下(清理潜在的预垃圾)。在那期间,我收到弹出窗口告诉我,如果这是根证书,一群疯狂的驴子可以做坏事。最后一个命令确认我有工作证书。我什至 运行 命令两次以验证清洁也会产生警告,正如预期的那样。

dotnet dev-certs https --clean
dotnet dev-certs https --trust
dotnet dev-certs https --verbose

我没有 imported any PFX-files,因为我的理解是 localhost 实例的开发工作不需要这样做。控制台中的信息似乎证实了这一点,让我知道证书已正确生成。 运行 dotnet dev-certs http --check 不产生警告(也没有确认,结果中没有内容)。

The HTTPS developer certificate was generated successfully.
A valid HTTPS certificate is already present.

然后我调用了我的 token dispencer 端点,也得到了预期的回复。它从 localhost:5001/connect/token 上的安全 HTTPS 返回并包含所有重要部分。

{
  "access_token": "eyJhbGciO...Ow7EEkA",
  "expires_in": 3600,
  "token_type": "Bearer",
  "scope": "myapi.read"
}

令我困扰的是带有红色图标的警告和文本 无法验证第一个证书

我已经确保 disable SSL checking and turned off CA Certificated (althoug I haven't added any Client Certificates in that menu. Googling gives me a bunch of hits on problems related to Ubuntu and/or MacOs 但我基于一个很好的旧 Win10,所以结果证明这些无关紧要。

我是不是误解了整个方法,或者可能混淆了一些概念?如果没有,我可以做些什么来进一步排除故障?

我对此进行了深入研究。

dotnet dev-certs https --trust命令只是creates/makes确定一个新的本地主机证书(朋友名ASP.NET核心HTTPS开发证书)并将其放入信任根存储。

IIS Express 服务器不会自动使用它。它仍然使用当您首次 运行 APS.NET 核心网络应用程序时创建的证书(朋友名称是 localhost)。如果此证书从信任根存储中删除,您将收到证书错误。

您有几个选项可以解决这个问题。

  1. Reset the IIS Express cert.

  2. 将 IISExpress 使用的证书切换为您刚刚创建的证书,您可以使用下面的 PowerShell 命令检索它并遵循 this link.

Get-ChildItem -path cert:\currentUser\My | Select-Object FriendlyName, subject, Thumbprint