Конвертировать .pfx в .cer

155

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

Марк Карпентер
источник

Ответы:

90

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

Эндрю Кокс
источник
5
Я пытался сделать это, но когда я выбираю экспорт закрытого ключа, я получаю отключенную опцию .cer (DER-кодирование). и утилита midletsigner в любом случае нуждается в provatekey ..
Джигар Джоши
3
При импорте вы должны установить флажок, на котором написано «пометить этот ключ как экспортируемый»
Эндрю Кокс,
11
Как попасть в диспетчер сертификатов в Windows: msdn.microsoft.com/en-us/library/ms788967.aspx
Джеймс Уайт,
12
Более простой способ открыть диспетчер сертификатов Windows - ввести в командной строке «certmgr.msc».
Ян Дерк
@AndrewCox, однако есть ли какая-то разница между пометкой как экспортируемой и не помечающей ее как таковую. Или это просто опция интерфейса?
Pacerier
212

Файлы 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
Берк Д. Демир
источник
9
+1 для объяснения того, что файл в дополнение к предоставлению команд.
Джошуа Дрейк
«Ошибка проверки Mac: неверный пароль?» когда я попробовал это. Я не знаю паролей, у меня есть только файл, предоставленный моим поставщиком.
Брайан Кноблаух
1
Похоже, что удаление «-nokeys» работает, когда вы пытаетесь конвертировать сертификат с его закрытыми ключами, скажем, для использования с Fiddler
Герт ван ден Берг
@Berk, кроме OpenSSL, есть ли в Windows cmd способ сделать это?
Pacerier
45

Если вы работаете в 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.
Ян Галлахер
источник
Экспортный сертификат доступен только для некоторых версий, таких как Win 8.1 и Server 2012 R2. Если вы в какой-то другой версии, например, Win 7, то не повезло!
Deep-B
1
Он должен присутствовать в Server 2012 и Windows 8.0 ( technet.microsoft.com/en-us/library/hh848628(v=wps.620).aspx ), но хороший момент о Windows 7 и подобных!
Ян Галлахер
@IanGallagher, как это соотносится с опцией OpenSSL?
Пейсер
Это намного удобнее, если вы не хотите устанавливать OpenSSL!
Леонардо Эррера
25

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

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

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

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

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

kingPuppy
источник
Не намного быстрее, так как вам все равно придется открыть certmgr.msc, чтобы экспортировать его ....
Pacerier
0
openssl rsa -in f.pem -inform PEM -out f.der -outform DER
Giacomo1968
источник