使用X509Certificate2

时间:2017-06-12 15:54:10

标签: azure asp.net-core azure-web-sites asp.net-core-1.1

我有一个.NET Core应用程序,我正在尝试部署到Azure App Service。当我部署并尝试加载该站点时,我收到了502.5错误响应。从我所读到的,这意味着它是一个权限问题。我已尝试使用stdout打印日志,但在物理创建日志文件时,它们都是空的。

所以我开始通过注释掉代码来消除这个问题。在ConfigureServices我正在加载证书:

var certificate = new X509Certificate2("mycertificate.pfx", "**********");

如果我注释掉这一行,那么应用程序就会加载。一旦返回,它会再次出错。

从Azure门户中的控制台我尝试使用mycertificate.pfx授予chmod 777 mycertificate.pfx权限,但似乎没有任何影响。

我不确定问题是加载该特定文件还是完全使用X509Certificate2

如何设置它?

1 个答案:

答案 0 :(得分:0)

  

如何设置它?

1.使用azure portal将pfx证书上载到Azure。需要服务计划B或以上。如何更改服务计划请参阅此document

enter image description here

  1. 添加名为WEBSITE_LOAD_CERTIFICATES的应用程序设置,其值设置为证书的指纹将使您的Web应用程序可以访问它。
  2.   

    您可以使用多个以逗号分隔的指纹值,也可以将此值设置为“*”(不含引号),在这种情况下,所有证书都将加载到您的Web应用程序个人证书存储区

    enter image description here

    3.从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获得更多信息。