identityserver4 由于证书链中的错误,远程证书无效:untrustedroot
identityserver4 the remote certificate is invalid because of errors in the certificate chain: untrustedroot
我在 HTTPS 下托管我的 IdentityServer、Web API 和 MVC 客户端应用程序,所有这些应用程序都使用 IIS 服务器。当我 运行 我的 MVC 客户端时,我收到以下错误(注意 - 6009 是我的 MVC 客户端的端口,6005 是我的 IdentityServer 的端口):
当我在 IIS 中配置项目时,我正在为所有项目使用 IIS Express 开发证书:
然后我将证书从个人存储复制到受信任的根,如下所示:
这里是证书的详细信息:
我还缺少什么?
你可以参考official link,试试里面的命令
dotnet dev-certs https --clean
dotnet dev-certs https --trust
对我来说,dotnet dev-certs https --clean/trust
和手动清理 Windows 证书存储都没有效果。
由于我使用的是 Docker 和 Kestrel(而不是 ISS),出于某种原因,它使用的是位于以下位置的过时证书:C:\Users\<user>\AppData\Roaming\ASP.NET\Https\<project-name>.pfx
dotnet dev-certs https --clean
命令没有清理此目录中的证书。
清除此目录中的证书后,一切又恢复正常了。我知道你的问题已经解决了,但由于这是一个常见问题,我想我也会 post 我的解决方案在这里。
关于为什么 clean 命令不清除这些证书的相关问题可以在这里找到:https://github.com/dotnet/aspnetcore/issues/15357
我在 HTTPS 下托管我的 IdentityServer、Web API 和 MVC 客户端应用程序,所有这些应用程序都使用 IIS 服务器。当我 运行 我的 MVC 客户端时,我收到以下错误(注意 - 6009 是我的 MVC 客户端的端口,6005 是我的 IdentityServer 的端口):
当我在 IIS 中配置项目时,我正在为所有项目使用 IIS Express 开发证书:
然后我将证书从个人存储复制到受信任的根,如下所示:
这里是证书的详细信息:
我还缺少什么?
你可以参考official link,试试里面的命令
dotnet dev-certs https --clean
dotnet dev-certs https --trust
对我来说,dotnet dev-certs https --clean/trust
和手动清理 Windows 证书存储都没有效果。
由于我使用的是 Docker 和 Kestrel(而不是 ISS),出于某种原因,它使用的是位于以下位置的过时证书:C:\Users\<user>\AppData\Roaming\ASP.NET\Https\<project-name>.pfx
dotnet dev-certs https --clean
命令没有清理此目录中的证书。
清除此目录中的证书后,一切又恢复正常了。我知道你的问题已经解决了,但由于这是一个常见问题,我想我也会 post 我的解决方案在这里。
关于为什么 clean 命令不清除这些证书的相关问题可以在这里找到:https://github.com/dotnet/aspnetcore/issues/15357