使用 X509Certificate2 加载证书时 Azure App Service 502.5 错误响应
Azure App Service 502.5 error response when loading a certificate using X509Certificate2
我有一个要部署到 Azure 应用服务的 .NET Core 应用程序。当我部署并尝试加载站点时,我收到 502.5 错误响应。据我了解,这意味着这是一个权限问题。我试过用 stdout 打印日志,但是当它实际创建日志文件时,它们都是空的。
所以我开始通过注释掉代码来解决这个问题。在 ConfigureServices
我正在加载证书:
var certificate = new X509Certificate2("mycertificate.pfx", "**********");
如果我注释掉这一行,应用程序就会加载。一旦返回,它再次给出错误。
我尝试在 Azure 门户的控制台中使用 chmod 777 mycertificate.pfx
授予 mycertificate.pfx
权限,但它似乎没有任何影响。
我不确定问题是在加载特定文件还是在使用 X509Certificate2
。
如何设置才能正常工作?
How can I set it up to work?
1.Upload pfx Azure 证书 azure portal. It is required service plan B or above. How to change service plan please refer to this document
- 添加一个名为 WEBSITE_LOAD_CERTIFICATES 的应用程序设置,其值设置为证书的指纹将使您的 Web 应用程序可以访问它。
You can have multiple comma-separated thumbprint values or can set this value to “ * “ (without quotes) in which case all your certificates will be loaded to your web applications personal certificate store
3.Access 来自 WebApp
using System;
using System.Security.Cryptography.X509Certificates;namespace UseCertificateInAzureWebsiteApp
{
class Program
{
static void Main(string[] args)
{
X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
certStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindByThumbprint,
// Replace below with your cert's thumbprint
“E661583E8FABEF4C0BEF694CBC41C28FB81CD870”,
false);
// Get the first cert with the thumbprint
if (certCollection.Count > 0)
{
X509Certificate2 cert = certCollection[0];
// Use certificate
Console.WriteLine(cert.FriendlyName);
}
certStore.Close();
}
}
}
我们可以从 document 获得更多信息。
我有一个要部署到 Azure 应用服务的 .NET Core 应用程序。当我部署并尝试加载站点时,我收到 502.5 错误响应。据我了解,这意味着这是一个权限问题。我试过用 stdout 打印日志,但是当它实际创建日志文件时,它们都是空的。
所以我开始通过注释掉代码来解决这个问题。在 ConfigureServices
我正在加载证书:
var certificate = new X509Certificate2("mycertificate.pfx", "**********");
如果我注释掉这一行,应用程序就会加载。一旦返回,它再次给出错误。
我尝试在 Azure 门户的控制台中使用 chmod 777 mycertificate.pfx
授予 mycertificate.pfx
权限,但它似乎没有任何影响。
我不确定问题是在加载特定文件还是在使用 X509Certificate2
。
如何设置才能正常工作?
How can I set it up to work?
1.Upload pfx Azure 证书 azure portal. It is required service plan B or above. How to change service plan please refer to this document
- 添加一个名为 WEBSITE_LOAD_CERTIFICATES 的应用程序设置,其值设置为证书的指纹将使您的 Web 应用程序可以访问它。
You can have multiple comma-separated thumbprint values or can set this value to “ * “ (without quotes) in which case all your certificates will be loaded to your web applications personal certificate store
3.Access 来自 WebApp
using System;
using System.Security.Cryptography.X509Certificates;namespace UseCertificateInAzureWebsiteApp
{
class Program
{
static void Main(string[] args)
{
X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
certStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindByThumbprint,
// Replace below with your cert's thumbprint
“E661583E8FABEF4C0BEF694CBC41C28FB81CD870”,
false);
// Get the first cert with the thumbprint
if (certCollection.Count > 0)
{
X509Certificate2 cert = certCollection[0];
// Use certificate
Console.WriteLine(cert.FriendlyName);
}
certStore.Close();
}
}
}
我们可以从 document 获得更多信息。