我是.NET Core和IdentityServer4的新手。我开始使用IISExpress和Temporary Signing Credentials在localhost上构建应用程序。一切都很好,我可以通过资源所有者密码获取访问令牌,并调用授权的API方法。
但是,当我部署到服务器(staging env)时,我总是会因需要授权的api呼叫而获得401未授权。 在部署之前,我在我的localhost上进行了更改(如下所述)并对其进行了测试,结果与之前一样。
将临时签名凭据更改为
services.AddIdentityServer()
.AddSigningCredential(new X509Certificate2(@"C:\Certs\DemoAuth.pfx"))
根据David Smit发布的步骤
创建自签名证书"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
为加载用户个人资料
在将加载使用配置文件设置为true之前,我还尝试使用以下代码:
services.AddIdentityServer()
.AddSigningCredential(new X509Certificate2(@"C:\Certs\DemoAuth.pfx", "pwd-here", X509KeyStorageFlags.MachineKeySet))
有人能指出我在部署时面临的问题上朝着正确的方向前进吗?
提前致谢。
答案 0 :(得分:0)
确保证书位于受信任的根证书颁发机构中(即将您的证书导入Windows证书管理器中的该位置)。
确保运行AppPool的帐户具有该证书的权限(右键单击证书并使用"管理私钥""所有任务&#34下的菜单选项;)。