Мы храним наши сертификаты в Azure Key Vault. Я могу успешно загрузить и записать файл PFX с одним из сертификатов с кодом, основанным на документации Microsoft Get-AzKeyVaultCertificate .
Одна проблема в том, что я не могу подписать Docker изображение с файлом PFX. Вместо этого мне нужно использовать файл PEM. Вся документация Docker, которую я видел, использует файлы PEM в качестве этого примера из Docker .com Content Trust
Я успешно сделал это в своей собственной подписке Azure с самозаверяющим сертификатом, созданным в моем хранилище ключей, а затем скачал сертификат как PEM с помощью интерфейса командной строки AZ. С PowerShell AZ, похоже, нет способа загрузить сертификат как PEM. Думаю, это оставляет мне возможность преобразовать PFX в PEM. Мне нужно сделать это как процесс DevOps, поэтому необходима повторяемость. Большинство примеров, которые я видел, указывают на то, что мне следует использовать openssl.exe. Я не хочу использовать openssl. Я бы хотел "родной" способ Powershell сделать это, если это возможно.
Ссылка от Microsoft показывает следующий код для загрузки сертификата и создания файла PFX:
$cert = Get-AzKeyVaultCertificate -VaultName "ContosoKV01" -Name "TestCert01"
$secret = Get-AzKeyVaultSecret -VaultName $vaultName -Name $cert.Name
$secretByte = [Convert]::FromBase64String($secret.SecretValueText)
$x509Cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2
$x509Cert.Import($secretByte, "", "Exportable,PersistKeySet")
$type = [System.Security.Cryptography.X509Certificates.X509ContentType]::Pfx
$pfxFileByte = $x509Cert.Export($type, $password)
[System.IO.File]::WriteAllBytes("KeyValt.pfx", $pfxFileByte)`
Документация Docker касается только файлов PEM:
docker trust key load key.pem --name jeff
Loading key from "key.pem"...
Enter passphrase for new jeff key with ID 8ae710e:
Repeat passphrase for new jeff key with ID 8ae710e:
Successfully imported key from key.pem
Как я могу восполнить этот пробел?