.net core IdentityServer4 webapi返回401未经授权的自签名证书
我是.NET核心和IdentityServer 4的新手。我开始使用IISExpress和临时签名凭据在localhost上构建应用程序。一切都很好,我能够通过资源所有者密码获得访问令牌,并调用授权的API方法 然而,当我部署到服务器(staging env)时,对于需要授权的api调用,我总是会得到一个401未经授权的消息。 在部署之前,我对本地主机进行了更改(如下所述),并对其进行了测试,结果和之前一样.net core IdentityServer4 webapi返回401未经授权的自签名证书,.net-core,identityserver4,.net Core,Identityserver4,我是.NET核心和IdentityServer 4的新手。我开始使用IISExpress和临时签名凭据在localhost上构建应用程序。一切都很好,我能够通过资源所有者密码获得访问令牌,并调用授权的API方法 然而,当我部署到服务器(staging env)时,对于需要授权的api调用,我总是会得到一个401未经授权的消息。 在部署之前,我对本地主机进行了更改(如下所述),并对其进行了测试,结果和之前一样 将临时签名凭据更改为 services.AddIdentityServer()
services.AddIdentityServer()
.AddSigningCredential(new X509Certificate2(@"C:\Certs\DemoAuth.pfx"))
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\makecert" -n "CN=IdentityServer4Auth" -a sha256 -sv IdentityServer4Auth.pvk -r IdentityServer4Auth.cer -b 01/01/2017 -e 01/01/2025
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\pvk2pfx" -pvk IdentityServer4Auth.pvk -spc IdentityServer4Auth.cer -pfx IdentityServer4Auth.pfx
services.AddIdentityServer()
.AddSigningCredential(new X509Certificate2(@"C:\Certs\DemoAuth.pfx", "pwd-here", X509KeyStorageFlags.MachineKeySet))
在部署时,有人能为我指出正确的方向吗
提前感谢。确保证书位于受信任的根证书颁发机构中(即,将您的证书导入Windows证书管理器中的该位置)
确保运行AppPool的帐户具有该证书的权限(右键单击证书并使用“所有任务”下的“管理私钥”菜单选项)。您要部署到哪里?蔚蓝色的你能添加日志吗?有什么错误吗?My
cert.pfx
与MyStartup.cs
位于同一文件夹中,因此您可以尝试此操作,只使用文件名而不使用path@moritzg如果.pfx路径错误,我将收到一个错误,并且将无法获得访问令牌。不过,让我来试一试。它不在云上,只是公司网络中的一个专用服务器。感谢you@moritzg刚刚尝试了你的建议,结果也一样。还有其他可能吗?嗯,好的,你能打开日志记录并编辑你的问题以包含输出吗?我猜您的服务器不信任该证书。设置SSL,以便您可以通过https://访问服务器,然后重试。@moritzg谢谢。我会尝试一下,并尽快更新。