我正在尝试使用Powershell将公共证书和私有证书上传到Azure Web应用程序。我正在使用下面的代码将证书上传到webapp。我的问题是如何使用Powershell从证书文件(公共证书.cer,私有证书.pfx)中提取这些公共/私有证书元数据(blob内容)和指纹。
$PropertiesObject = @{
blob="LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZ5RENDQTdDZ0F3SUJBZ0lDRUFBd0RRWUpLb1pJaHZjTkFRRUxCUUF3ZkRFTE1Ba0dBMVVFQmhNQ1ZWTXgKRlRBVEJnTlZCQWdNREZCbGJtNXplV3gyWVc1cFlURVRNQkVHQTFVRUJ3d0tVR2wwZEhOaWRYSm5hREVWTUJNRwpBMVVFQ2d3TVZHVnNaWFBDRVJUSUZJQ0FURS0tLS0tCg==";
publicCertificateLocation= "CurrentUserMy";
thumbprint= "8158F2A26BCB4A75479D2FBF17550";
ResourceType = "Microsoft.Web/sites/publicCertificates";
ResourceName= "DevUserService/my-cert-new"
}
$resourceId = '/subscriptions/967d-a594-8fd5-aeb26/resourceGroups/DevA_AppServices/providers/Microsoft.Web/sites/DevUserService'
$resource = Get-AzureRmResource -ResourceId $resourceId
New-AzureRmResource -Location $resource.Location -PropertyObject $PropertiesObject -ResourceGroupName $resource.ResourceGroupName -ResourceType Microsoft.Web/sites/publicCertificates -ResourceName "DevUserService/my-cert-new" -ApiVersion 2018-02-01 -Force
以上代码将上传公共证书并将其附加到Webapp。
但是我想使用powershell从系统中的.cer,.pfx文件中提取证书Blob内容,指纹。
要尝试使用该代码,我已将该公共证书手动上传到了我的webapp,下面的调用显示了blob内容。 Get-AzureRmResource -ResourceGroupName DevUS_A_ApplicationServices1 -ResourceType Microsoft.Web / sites / publicCertificates -ResourceName“ DevService” -ApiVersion 2018-02-01
答案 0 :(得分:0)
我解决了。这是用于读取.cer文件内容的代码。
$fullpath = 'C:\Certs\mycert.cer'
$pwd = ConvertTo-SecureString -String 'anyPwd' -AsPlainText -Force
$cert = New-AzureRmApplicationGatewaySslCertificate -Name someCert -CertificateFile $fullpath -Password $pwd
$PropertiesObject = @{
blob=$cert.Data;
publicCertificateLocation= "CurrentUserMy";
thumbprint= $certThumbPrint;
ResourceType = "Microsoft.Web/sites/publicCertificates"
}
我无法以这种方式读取指纹,但是可以肯定的是,您可以将证书导入本地计算机并找到它。