【发布时间】:2017-07-10 03:05:05
【问题描述】:
如何在 IIS 中使用 IdentityServer4 托管 ASPNET CORE APP。该应用程序在 localhost 中运行良好,但不是作为 IIS 中的 Web 应用程序设置。
例如,
http://localhost:5000/connect/token 正在工作,但 http://example.com/myauthapp/connect/token 无法访问 - 返回 500 - 使用身份模型或通过邮递员从控制台应用程序尝试时出现内部服务器错误。我可以使用网络浏览器登录应用程序,但不能通过控制台应用程序或邮递员。
进一步的疑难解答,我找到了以下内容。
An unhandled exception has occurred: IDX10638: Cannot created the SignatureProvider, 'key.HasPrivateKey' is false, cannot create signatures. Key: Microsoft.IdentityModel.Tokens.RsaSecurityKey.
System.InvalidOperationException: IDX10638: Cannot created the SignatureProvider, 'key.HasPrivateKey' is false, cannot create signatures. Key: Microsoft.IdentityModel.Tokens.RsaSecurityKey.
at Microsoft.IdentityModel.Tokens.AsymmetricSignatureProvider..ctor(SecurityKey key, String algorithm, Boolean willCreateSignatures)
at Microsoft.IdentityModel.Tokens.CryptoProviderFactory.CreateSignatureProvider(SecurityKey key, String algorithm, Boolean willCreateSignatures)
at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.CreateEncodedSignature(String input, SigningCredentials signingCredentials)
at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.WriteToken(SecurityToken token)
at IdentityServer4.Services.DefaultTokenCreationService.CreateJwtAsync(JwtSecurityToken jwt)
at IdentityServer4.Services.DefaultTokenCreationService.<CreateTokenAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
我该如何解决这个问题?
【问题讨论】:
-
在服务器中安装 X509Certificate 后,一切正常。感谢 Jeffrey T. Fritz 的以下文章帮助我解决了blogs.msdn.microsoft.com/webdev/2016/10/27/…
-
嗨@Arun。在我的测试服务器(www)上,我也遇到了与您相同的问题。所以我在本地 PC 上使用 Visual Studio 命令创建了一个自签名的“*.pfx”证书,然后使用“AddSigningCredential”将其添加到身份中,这在 localhost 上运行良好。但是在测试服务器(www)上,我现在收到 500 错误,根本没有日志。您是如何为您的站点创建/获取 *.pfx 证书的? (复制它对我不起作用,或者使用 IIS 创建一个 pfx)
-
查看进程正在运行的用户,然后以该用户身份登录以允许windows自动为该用户生成私钥,请参阅下面我的解决方案和说明
标签: core identityserver4