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();
}
}
}
1条答案
按热度按时间8wtpewkr1#
你走对了方向。自定义部署脚本应执行以下操作:
http://blog.amitapple.com/post/38417491924/azurewebsitecustomdeploymentpart1
https://github.com/projectkudu/kudu/wiki/custom-deployment-script
在kudu,你不会安装azurepowershell,所以你必须从密钥库中提取证书。
更新:azure函数确实安装了azure rm cmdlet。您可以在powershell中编写一个函数应用程序,从密钥库中提取证书。使用服务主体
Login-AzureRmAccount
无人看管。实现这一点所需的秘密应该保存在应用程序设置中。它们作为环境变量在Kudu向您公开:https://azure.microsoft.com/en-gb/documentation/articles/web-sites-configure/
应用程序设置
此部分包含web应用程序启动时将加载的名称/值对。对于.net应用程序,这些设置将在运行时注入到.net配置appsettings中,并覆盖现有设置。
php、python、java和node应用程序可以在运行时作为环境变量访问这些设置。对于每个应用程序设置,创建两个环境变量;一个名称由app setting条目指定,另一个前缀为appsetting。两者包含相同的值。
或者,您可以从应用服务商店(“我的”商店)中提取证书。方法如下:
从https://azure.microsoft.com/en-us/blog/using-certificates-in-azure-websites-applications/:
添加名为website\u load\u certificates的应用程序设置,并将其值设置为证书的指纹,将使您的web应用程序可以访问该设置。可以有多个逗号分隔的指纹值,也可以将此值设置为*在这种情况下,所有证书都将加载到web应用程序个人证书存储中。
没有为您进行证书验证。您需要通过与应用程序设置或密钥库中存储的值进行比较,自己实现这一点。