Azure应用服务 - 无法通过指纹查找证书

时间:2017-06-21 09:37:56

标签: azure ssl azure-web-sites

我在Azure中有一个B1应用服务,我已经在其中安装了我的证书,如下所示: enter image description here

当我尝试获取证书时,它无法找到它。好像没有安装证书。这是我的代码:

using (X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser))
{
    certStore.Open(OpenFlags.ReadOnly);
    X509Certificate2Collection certCollection = certStore.Certificates.Find(
        X509FindType.FindByThumbprint,
        certificateThumbprint,
        false);

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

    throw new Exception("Certificate not found!");
}

我已经验证了证书指纹,甚至尝试将其硬编码为字符串。

当我尝试打印商店中的证书数量时:

Console.WriteLine("certStore.Certificates.Count : " + certStore.Certificates.Count);

它返回零证书。

我也尝试更改StoreNameStoreLocation - 仍然是相同的结果。即使没有提供任何StoreNameStoreLocation,它仍然无法找到任何证书。

1 个答案:

答案 0 :(得分:12)

您需要添加名为WEBSITE_LOAD_CERTIFICATES

的应用设置

来自https://azure.microsoft.com/en-us/blog/using-certificates-in-azure-websites-applications/?v=17.23h

  

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