我有 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 分配器端点的调用,也得到了预期的回复。它来自 localhost:5001/connect/token 上的安全 HTTPS 并包含所有重要部分。
{
"access_token": "eyJhbGciO...Ow7EEkA",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "myapi.read"
}
困扰我的是带有红色图标的警告和文本无法验证第一个证书。我已经确定 disable SSL checking和 turned off CA Certificated (尽管我没有在该菜单中添加任何客户端证书。谷歌搜索给了我一堆与 Ubuntu 和/或 MacOs 相关的问题,但我基于一个很好的旧 Win10,所以那些结果无关紧要。
我是否完全误解了这种方法,或者可能混淆了一些概念?如果没有,我该怎么做才能进一步排除故障?
最佳答案
我对此进行了一些研究。dotnet dev-certs https --trust
命令只是创建/确保一个新的 localhost 证书(使用 friend 名称 ASP.NET Core HTTPS 开发证书)并将其放入信任根存储中。
然而,IIS Express 服务器不会自动使用它。它仍然使用第一次运行 APS.NET Core Web 应用程序时创建的证书( friend 名称是 localhost)。如果从信任根存储中删除此证书,您将收到证书错误。
你有几个选项来解决这个问题。
Get-ChildItem -path cert:\currentUser\My | Select-Object FriendlyName, subject, Thumbprint
关于ssl - 从 IdServer 成功获取 token 但出现证书错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68243418/