Я создаю виртуальную машину с использованием python и использую расширение собственного сценария для загрузки сертификата внутри виртуальной машины, а затем сохраняю его в сертификате доверенного корневого сертификата локального компьютера.
Единственный мой запрос в Интернете - это очень ограниченный ресурс, доступный для загрузки сертификатов из хранилища ключей Azure. Все предлагают войти в систему, а затем использовать для загрузки командлет, который не подходит для расширения пользовательских сценариев.
Ниже приведен пример командлета powershell, который запрашивает вход в систему и затем загружает сертификат. Но поскольку мы запускаем собственное расширение скрипта, мы не сможем пройти аутентификацию.
$vaultName = "YOUR-KEYVAULT-NAME"
$certificateName = "YOUR-CERTIFICATE-NAME"
$pfxPath = [Environment]::GetFolderPath("Desktop") + "\$certificateName.pfx"
$password = "YOUR-CERTIFICATE-PASSWORD"
$pfxSecret = Get-AzureKeyVaultSecret -VaultName $vaultName -Name $certificateName
$pfxUnprotectedBytes = [Convert]::FromBase64String($pfxSecret.SecretValueText)
$pfx = New-Object Security.Cryptography.X509Certificates.X509Certificate2
$pfx.Import($pfxUnprotectedBytes, $null, [Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
$pfxProtectedBytes = $pfx.Export([Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $password)
[IO.File]::WriteAllBytes($pfxPath, $pfxProtectedBytes)