从C#Azure函数内访问证书

问题描述:

我需要从Azure函数访问证书。从C#Azure函数内访问证书

我按照Runtime error loading certificate in Azure Functions中列出的步骤操作,但没有解决。

private static X509Certificate2 GetCertificate(string thumbprint, TraceWriter log) 
{ 
    X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); 
    try 
    { 
     store.Open(OpenFlags.ReadOnly); 
     log.Info("Enumerating certificates"); 
     foreach (var cert in store.Certificates) { 
      log.Info(cert.Subject); 
     } 
     var col = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); 
     if (col == null || col.Count == 0) 
     { 
      return null; 
     } 
     return col[0]; 
    } 
    finally 
    { 
     store.Close(); 
    } 

}

两个证书,其中上传到天青功能并加入设定WEBSITE_LOAD_CERTIFICATES以及和设置为*或以所需的证书的thumpbrint,但没有效果。

GetCertificate方法应打印商店中所有证书的列表,但商店为空。

关于如何解决这个问题的任何线索?

+0

您是否尝试过为webjobs搜索类似的问题?因为解决方案将是相同的 – 4c74356b41

+0

是的。他们都建议上述链接中概述的方法应该可行。但事实并非如此。 –

+0

当我使用Azure访问证书时,我总是使用StoreLocation.LocalMachine。我没有在函数中尝试过,但是在其他WebApps和CloudService中,它与LocalMachine一起工作 – dave000

客户证书尚未支持我们的消费计划,只在应用服务计划。这由我们的回购here中的问题进行跟踪。我们正在研究它 - 请遵循该问题的状态。谢谢。