Я создал учетную запись службы автоматизации с учетной записью RunAs на портале Azure. Сертификат был сгенерирован автоматически. Я хочу создать файл PFX из этого сертификата с помощью утилиты openssl.
Я могу сделать это с помощью PowerShell Core 7.1.0-rc.2 со следующими шагами и кодом:
- Портал Azure › Azure Active Directory › Регистрация приложений › Субъект-служба учетной записи службы автоматизации
- Выберите «Манифест» в меню слева, прокрутите JSON вниз до раздела «keyCredentials».
- Скопируйте всю строку для свойства value в переменную в PowerShell:
$base64value = "<contents of the value property here>"
- Код PowerShell для создания файла PFX:
# Create a X509 certificate object
$byteArray = [System.Convert]::FromBase64String($base64value)
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($byteArray)
# Export the certificate as a PFX file
$bytesPfx = $cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pfx)
[System.IO.File]::WriteAllBytes('filename.pfx', $bytesPfx)
Я пытаюсь понять, как выполнить тот же процесс с помощью утилиты openssl, учитывая это строковое значение base64 из манифеста JSON учетной записи службы автоматизации. Поскольку я могу преобразовать эту строку base64 в массив байтов, а затем в сертификат X509 с помощью конструктора класса .NET, я полагаю, что мне нужно будет использовать openssl x509, но я не могу найти вариант, который принимает base64 строка или двоичный аргумент или файл.
filename.pfx
содержит как открытый, так и закрытый ключ, тоbyteArray
уже представляет PFX. Таким образом, вы должны иметь возможность просто декодировать блоб с помощью base64 и напрямую сохранять его как PFX. - person bartonjs   schedule 23.10.2020