Как извлечь большой двоичный объект из публичного сертификата (.cer и .pfx) с помощью Azure PowerShell - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь загрузить публичный и приватный сертификат в веб-приложение Azure с использованием powershell.Я использую приведенный ниже код, который загружает сертификат в веб-приложение.У меня есть проблема, как извлечь эти метаданные общедоступного / частного сертификата (содержимое BLOB-объектов) и отпечаток с помощью powershell из файла сертификата (общедоступный сертификат .cer, частный сертификат .pfx).

$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

Над кодомзагружает и прикрепляет публичный сертификат к веб-приложению.

Но я хочу использовать powershell для извлечения содержимого блоба сертификата, отпечатка большого пальца из файла .cer, .pfx, имеющегося в моей системе.

Чтобы попробовать код, я вручную загрузил этотПубличный сертификат моего веб-приложения и приведенный ниже вызов показали содержание BLOB-объектов.Get-AzureRmResource -ResourceGroupName DevUS_A_ApplicationServices1 -ResourceType Microsoft.Web / sites / publicCertificates -ResourceName "DevService" -ApiVersion 2018-02-01

1 Ответ

0 голосов
/ 24 сентября 2019

Я решил это.Вот код для чтения содержимого файла .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"
    }

Я не мог прочитать отпечаток таким образом, но наверняка вы можете импортировать сертификат на локальный компьютер и найти его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...