gpt4 book ai didi

core - Identityserver4 - 在 IIS 中托管

转载 作者:行者123 更新时间:2023-12-04 23:39:31 32 4
gpt4 key购买 nike

如何在 IIS 中使用 IdentityServer4 托管 ASPNET CORE APP。该应用程序在本地主机上运行良好,但不能作为 IIS 中的 Web 应用程序设置。

例如,

http://localhost:5000/connect/token正在工作,但 http://example.com/myauthapp/connect/token无法访问 - 返回 500 - 使用身份模型或通过 postman 从控制台应用程序尝试时出现内部服务器错误。我可以使用网络浏览器登录该应用程序,但不能通过控制台应用程序或 postman 登录。

进一步的故障排除,我找到了以下内容。

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 ---

我该如何解决这个问题?

最佳答案

正如 Arun 在他的评论中指出的那样,证书必须安装在服务器上。

1 .要首先在本地主机上进行测试,请确保您使用的是“AddSigningCredential”而不是“AddTemporarySigningCredential”。

services.AddIdentityServer()
.AddSigningCredential(new X509Certificate2(Path.Combine(_environment.ContentRootPath, "certs", "IdentityServer4Auth.pfx")));
//.AddTemporarySigningCredential()
;
  • 在您的项目中创建证书(创建 certs 文件夹),在 Visual Studio 命令中运行它:

  • "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


  • 在本地主机上测试
  • 如果成功,部署到iis服务器,双击服务器安装证书,测试。
  • 确保应用程序池“加载用户配置文件”设置为 true :
  • 转到 IIS 管理器
  • 进入应用池实例
  • 点击高级设置
  • 在流程模型下,将加载用户配置文件设置为 true
  • 重启 IIS
  • 如果 500 失败,就像我一样(并且没有日志可以帮助你),试试这个。要解决此问题,请按照与步骤 2 中 certs 文件夹中相同的方式在服务器上重新创建证书。双击证书进行安装。
    如果您没有安装 Visual Studio,您可能需要安装开发人员工具包:
    https://developer.microsoft.com/en-us/windows/downloads/windows-8-1-sdk
  • 关于core - Identityserver4 - 在 IIS 中托管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42351274/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com