Конвертировать .pfx в .cer - PullRequest
127 голосов
/ 31 декабря 2008

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

Ответы [ 5 ]

172 голосов
/ 02 января 2009

PFX-файлы представляют собой PKCS # 12 Пакеты стандартов обмена личной информацией . Они могут включать произвольное количество закрытых ключей с сопровождающими сертификатами X.509 и цепочку центра сертификации (набор сертификатов).

Если вы хотите извлечь клиентские сертификаты, вы можете использовать OpenSSL PKCS12 tool .

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
77 голосов
/ 31 декабря 2008

простой способ, который я считаю, это импортировать его, а затем экспортировать, используя диспетчер сертификатов в консоли управления Windows.

32 голосов
/ 11 марта 2015

Если вы работаете в 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.
21 голосов
/ 06 июня 2014

Я хотел добавить метод, который мне кажется самым простым.

  1. Просто щелкните правой кнопкой мыши файл pfx, нажмите «Установить», следуйте указаниям мастера и добавьте его в магазин (я добавил в личный магазин).

  2. В меню «Пуск» введите certmgr.msc и перейдите в программу CertManager.

  3. Найдите свой сертификат pfx (на верхних вкладках находятся различные магазины), нажмите кнопку экспорта и следуйте указаниям мастера (есть возможность экспортировать как .CER)

По сути, он делает то же самое, что и ответ Эндрю, но избегает использования консоли управления Windows (идет прямо к импорту / экспорту).

0 голосов
/ 12 февраля 2009
openssl rsa -in f.pem -inform PEM -out f.der -outform DER
...