如何使用Azure Powershell从公共证书(.cer和.pfx)中提取Blob

时间:2019-09-24 16:05:35

标签: certificate azure-web-app-service azure-powershell

我正在尝试使用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

1 个答案:

答案 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"
    }

我无法以这种方式读取指纹,但是可以肯定的是,您可以将证书导入本地计算机并找到它。