IdentityServer4 在 Azure 的 Linux Web 应用程序中加载证书

IdentityServer4 loading certificates in a Linux Web App in Azure

目前我有一个在开发人员模式下工作的网络应用程序,但我试图让它在 Azure 的 Linux 网络应用程序中使用自签名证书。我已经将 .pfx 文件上传到 Azure,并通过设置 WEBSITE_LOAD_CERTIFICATES 应用程序设置将其加载到容器中。起初,我尝试使用商店,但是,这在 Linux.

中不起作用

相反,我已经能够找到上传文件的位置(到 .p12 文件),但是,当我尝试手动加载证书时,出现错误 error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure,这似乎可能是密码的问题,我已经多次验证密码正确了。

A post here有使用openssl生成自签名密钥的方法,并显示了同样的问题。

注意:加载证书适用于 Windows 和 Ubuntu,只是不适用于 Azure 中的 Linux Web 应用程序。

为了解决这个问题,我使用了通过 azure 创建的证书以及“创建应用服务托管证书”选项。加载证书时提供的密码只是一个空字符串 ("")。

对我来说,Azure 中托管在 linux 上的 IdentityServer4 的解决方案是在这个 Github 问题中:https://github.com/IdentityServer/IdentityServer4/issues/4000

方法 AddApiAuthorization() 覆盖 AddSigningCredential()!

此外,您必须指定 IssuerUrl:

  services.AddIdentityServer(options =>
            {
                options.IssuerUri = "https://your.azurewebsites.net/";
            })