Преобразование .pfx в .cer

Можно ли преобразовать файл .pfx(Personal Information Exchange) в файл .cer(Security Certificate)? Если я не ошибаюсь, разве какой-то встроенный внутри .pfx? Я бы хотел каким-то образом извлечь его, если это возможно.

Ответ 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