从 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)。如果此证书从信任根存储中删除,您将收到证书错误。
您有几个选项可以解决这个问题。
-
将 IISExpress 使用的证书切换为您刚刚创建的证书,您可以使用下面的 PowerShell 命令检索它并遵循 this link.
Get-ChildItem -path cert:\currentUser\My | Select-Object FriendlyName, subject, Thumbprint
我有 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)。如果此证书从信任根存储中删除,您将收到证书错误。
您有几个选项可以解决这个问题。
将 IISExpress 使用的证书切换为您刚刚创建的证书,您可以使用下面的 PowerShell 命令检索它并遵循 this link.
Get-ChildItem -path cert:\currentUser\My | Select-Object FriendlyName, subject, Thumbprint