在管道中使用Azure密钥保险库中的证书

时间:2019-12-11 07:42:58

标签: .net azure azure-devops certificate azure-keyvault

我有一个包含证书的密钥库。在Azure DevOps中,我创建了一个链接到此关键文件库的库,并在发布管道中创建了一个引用证书的参数。要以这种方式使用例如密码和用户名,很容易在代码中进行操作,只需使用password = Environment.GetEnvironmentVariable("password"),但如何使用证书来做到这一点?

我当前用于设置安装在本地证书存储中的证书的代码为:

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certificateCollection = store.Certificates.Find(X509FindType.FindByThumbprint, "3333333333333", true);

var handler = new HttpClientHandler();
handler.ClientCertificates.Add(certificateCollection[0]);

,我想替换它,以便代替它在我的密钥库中查找和使用证书。有谁知道如何做到这一点?我发现的相关文档很少,有人会认为这是一个非常普遍的问题。

编辑:

好吧,我发现我可以将证书添加到应用服务的SSL设置中:

enter image description here

问题仍然存在,如何告诉我的代码使用此证书?

1 个答案:

答案 0 :(得分:0)

在谷歌搜索了一些特定的搜索短语之后,我发现了这篇文章:https://docs.microsoft.com/en-us/azure/app-service/configure-ssl-certificate-in-code,它现在似乎可以正常工作。

我只是在应用程序设置中添加了WEBSITE_LOAD_CERTIFICATES作为参数,并将其设置为“ *”以加载所有证书,然后根据定价层将证书放置在证书存储中:

隔离层-在“本地计算机\我的”中。 所有其他层-在“当前用户\我的”中。

然后可以正常方式使用指纹。