在AZURE asp.net网站中使用证书

时间:2018-07-15 10:26:20

标签: asp.net azure x509

我正在将一个asp.net应用程序移动到Azure环境。在该应用程序中,我们在调用某些Web服务时使用一个X509Certificate2。我使用cert.import方法导入证书,然后将证书对象添加到服务的客户端证书属性中。当我们将应用程序托管在IIS服务器上时,它运行良好。 这就是我们的做法:

abcservice service = new abcservice ();

string CertificatePath = ConfigurationManager.AppSettings["CertificatePath"].ToString(); string certPwd = ConfigurationManager.AppSettings["CertificatePwd"].ToString();

cert.Import(CertificatePath, certPwd , X509KeyStorageFlags.DefaultKeySet);
service.ClientCertificates.Add(cert);

但是当我们转到azure时,它停止工作并开始向我显示无法在cert.import处找到指定的文件。我知道MyStore在Azure中不起作用。因此,我正在寻找一些替代方法。我发现一种无需使用导入即可实现此目的的解决方案。

abcservice service = new abcservice ();

string CertificatePath =ConfigurationManager.AppSettings["CertificatePath"].ToString();

string certPwd = ConfigurationManager.AppSettings["CertificatePwd"].ToString();

X509Certificate2 cert = new X509Certificate2(CertificatePath , certPwd , X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
service.ClientCertificates.Add(cert);

现在它开始在服务对象中添加证书,但是当我致电服务时,它开始给我以下错误消息:

无法使用以下搜索条件找到X.509证书:StoreName'My',StoreLocation'LocalMachine',FindType'FindBySubjectName',FindValue'abc-123.pqr.com'。 < / p>

在web.config中,我们设置了以下属性:

<clientCertificate findValue="abc-123.pqr.com" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
        <!--Need to provide Server certificate Details-->
        <serviceCertificate>
          <defaultCertificate findValue="xyz Gateway" storeLocation="LocalMachine" storeName="TrustedPeople" x509FindType="FindBySubjectName" />
          <authentication certificateValidationMode="ChainTrust" revocationMode="Online" />

我已经将abc-123.pqr.com设置为我的网站的DNS名称,并且我能够使用该URL访问网站,并使用该URL将证书上传到Azure门户中。

1 个答案:

答案 0 :(得分:0)

如果要在Azure网站上使用证书, 您需要添加一个名为 WEBSITE_LOAD_CERTIFICATES 的应用程序设置,其值设置为证书的指纹,这将使其可用于您的Web应用程序。有关更多信息,请参阅此tutorial

  

添加一个名为WEBSITE_LOAD_CERTIFICATES的应用程序设置,并将其设置为证书的指纹。要访问多个证书,请使用逗号分隔的指纹值。要使所有证书都可访问,请将值设置为*。

enter image description here