Можно ли преобразовать файл .pfx (Обмен личной информацией) в файл .cer (Сертификат безопасности)? Если я не ошибаюсь, не .cer как-то встроен в .pfx? Я хотел бы как-нибудь извлечь его, если это возможно.
Можно ли преобразовать файл .pfx (Обмен личной информацией) в файл .cer (Сертификат безопасности)? Если я не ошибаюсь, не .cer как-то встроен в .pfx? Я хотел бы как-нибудь извлечь его, если это возможно.
Ответы:
я полагаю, что простой способ - импортировать и экспортировать, используя диспетчер сертификатов в консоли управления Windows.
Файлы 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
Если вы работаете в PowerShell, вы можете использовать что-то вроде следующего, учитывая pfx- файл InputBundle.pfx , для создания DER-кодированного (двоичного) файла сертификата OutputCert.der :
Get-PfxCertificate -FilePath InputBundle.pfx |
Export-Certificate -FilePath OutputCert.der -Type CERT
Newline добавлен для ясности, но вы, конечно, можете иметь все это в одной строке.
Если вам нужен сертификат в формате PEM в кодировке ASCII / Base64, вы можете предпринять дополнительные шаги, как описано в другом месте, например, здесь: /superuser/351548/windows-integrated-utility-to-convert -der к 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.
Я хотел добавить метод, который я считаю самым простым.
Просто щелкните правой кнопкой мыши файл pfx, нажмите «Установить», следуйте указаниям мастера и добавьте его в магазин (я добавил в «Личный магазин»).
В меню «Пуск» введите certmgr.msc и перейдите в программу CertManager.
Найдите свой сертификат pfx (на верхних вкладках находятся различные магазины), нажмите кнопку экспорта и следуйте указаниям мастера (есть возможность экспортировать как .CER)
По сути, он делает то же самое, что и ответ Эндрю, но избегает использования консоли управления Windows (идет прямо к импорту / экспорту).
openssl rsa -in f.pem -inform PEM -out f.der -outform DER