Можно ли преобразовать файл .pfx(Personal Information Exchange) в файл .cer(Security Certificate)? Если я не ошибаюсь, разве какой-то встроенный внутри .pfx? Я бы хотел каким-то образом извлечь его, если это возможно.
Преобразование .pfx в .cer
Ответ 1
простой способ, по моему мнению, импортировать его, а затем экспортировать его, используя диспетчер сертификатов в консоли управления Windows.
Ответ 2
Файлы PFX представляют собой стандартные пакеты синтаксиса обмена персональной информацией PKCS # 12. Они могут включать произвольное количество закрытых ключей с сопровождающими сертификатами X.509 и цепочку центра сертификации (набор сертификатов).
Если вы хотите извлечь клиентские сертификаты, вы можете использовать инструмент OpenSSL PKCS12.
openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts
Команда выше выведет сертификат в формате PEM. Расширение файла .crt обрабатывается как macOS, так и Window.
Вы упоминаете расширение ".cer" в вопросе, который обычно используется для файлов, закодированных в DER. Бинарная кодировка. Сначала попробуйте файл ".crt" и, если он не принят, легко конвертировать из PEM в DER:
openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer
Ответ 3
Если вы работаете в PowerShell, вы можете использовать что-то вроде следующего, учитывая файл pfx InputBundle.pfx, для создания файла сертификата с сертификатом DER (двоичный) OutputCert.der
Get-PfxCertificate -FilePath InputBundle.pfx |
Export-Certificate -FilePath OutputCert.der -Type CERT
Новая строка добавлена для ясности, но вы можете, конечно, все это на одной строке.
Если вам нужен сертификат в формате PEM с кодировкой ASCII/Base64, вы можете предпринять дополнительные шаги для этого, как описано в другом месте, например здесь: https://superuser.com/questions/351548/windows-integrated-utility-to-convert-der-to-pem
Если вам нужно экспортировать в другой формат, чем DER, вы можете изменить параметр -Type
для Export-Certificate, чтобы использовать типы, поддерживаемые .NET, как показано в help Export-Certificate -Detailed
:
-Type <CertType>
Specifies the type of output file for the certificate export as follows.
-- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates.
-- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate.
-- P7B: A PKCS#7 file format which can contain one or more certificates.
Ответ 4
Я хотел добавить метод, который, по моему мнению, был самым простым.
-
Просто щелкните правой кнопкой мыши файл pfx, нажмите "Установить", следуя за мастером, и добавьте его в магазин (я добавил в Личный магазин).
-
В стартовом меню введите certmgr.msc и перейдите в программу CertManager.
-
Найдите свой сертификат pfx (вкладки вверху - это различные магазины), нажмите кнопку экспорта и следуйте указаниям мастера (есть возможность экспортировать как .CER)
По сути, он делает то же самое, что и Andrew, но избегает использования консоли управления Windows (прямо на импорт/экспорт).
Ответ 5
openssl rsa -in f.pem -inform PEM -out f.der -outform DER