将证书作为嵌入资源加载到程序集中

Loading a certificate as embedded resource in an assembly

我已将 PFX 文件添加为程序集中的嵌入式资源,以使用证书签署 JWT 令牌。我将 pfx 作为流加载并读取所有字节并使用 X509Certificate2 加载私钥

public X509Certificate2(byte[] rawData, string password)

在 Debug/Release 的开发机器上工作正常,但是当部署到 Azure 应用程序服务或构建机器时,我看到 "Bad data" 错误。

非常感谢任何帮助。 谢谢

你似乎想从 Azure 应用服务 Web 应用程序访问证书,你可以将你的证书上传到 Azure 网站中的证书集合,并在你网站的个人证书存储区的 Web 应用程序中使用它。

上传证书

添加名为 WEBSITE_LOAD_CERTIFICATES 的应用设置,其值设置为证书的指纹

正在应用程序中使用证书

X509Certificate2 retVal = null;

X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
certStore.Open(OpenFlags.ReadOnly);

X509Certificate2Collection certCollection = certStore.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false);

if (certCollection.Count > 0)
{
    retVal = certCollection[0];
}

certStore.Close();

详细信息请查看:Using Certificates in Azure Websites Applications