You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 6带Angular和Identity的启动应用部署Azure App Service遇证书错误

解决Azure App Service部署IdentityServer时的签名凭证错误

本地运行时,IdentityServer默认会自动使用开发环境的临时证书,所以不会有问题。但部署到Azure生产环境后,必须配置有效的签名凭证,否则就会抛出InvalidOperationException: No signing credential is configured by the 'IdentityServer:Key' configuration section.错误。

不需要强制让本地和Azure使用同一个证书,本地可以继续用开发证书,Azure单独配置生产证书,这样更灵活。具体操作步骤如下:

1. 在Azure App Service配置私钥证书

  • 两种选择:
    • 直接在Azure购买并管理证书,或者上传自己已有的PFX格式证书
    • 进入App Service的TLS/SSL设置 -> 私钥证书(.pfx),完成证书的添加/上传
  • 记录证书的指纹(Thumbprint),注意去掉指纹中的空格,后续配置要用到

2. 配置App Service的应用设置

进入App Service的配置 -> 应用程序设置,添加以下配置项:

  • IdentityServer__Key__Type:值设为Store
  • IdentityServer__Key__StoreName:值设为My
  • IdentityServer__Key__StoreLocation:值设为CurrentUser
  • IdentityServer__Key__Name:值设为刚才记录的证书指纹(无空格)

3. 适配本地与生产环境的代码/配置

方式一:通过代码环境判断配置

在Program.cs中针对开发环境和生产环境做区分,本地继续用默认开发证书,生产环境读取Azure配置:

builder.Services.AddIdentityServer()
    .AddApiAuthorization<ApplicationUser, ApplicationDbContext>(options =>
    {
        if (!builder.Environment.IsDevelopment())
        {
            options.Key = new KeyDefinition
            {
                Type = builder.Configuration["IdentityServer:Key:Type"],
                StoreName = builder.Configuration["IdentityServer:Key:StoreName"],
                StoreLocation = builder.Configuration["IdentityServer:Key:StoreLocation"],
                Name = builder.Configuration["IdentityServer:Key:Name"]
            };
        }
    })
    .AddPersistedGrants()
    .AddDefaultTokenProviders();

方式二:通过环境配置文件区分

  • 保留appsettings.json的默认开发配置,无需修改
  • 在appsettings.Production.json中添加生产环境的证书配置:
{
  "IdentityServer": {
    "Key": {
      "Type": "Store",
      "StoreName": "My",
      "StoreLocation": "CurrentUser",
      "Name": "你的证书指纹(无空格)"
    }
  }
}

如果确实需要本地和Azure使用同一个证书,可将本地开发证书导出为PFX格式(设置密码),上传到Azure后,本地也通过配置文件指定该证书路径和密码即可,但开发环境没必要这么做,用默认临时证书更便捷。

内容的提问来源于stack exchange,提问作者mo_maat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:45:56