преобразовать формат pfx в p12


119

Мне нужно экспортировать .pfxсертификат формата (из windows mmc) в .p12 для использования в другом приложении. Я не могу найти способ сделать это. Кто-нибудь может предложить способ?

Ответы:


202

.p12и .pfxоба являются файлами PKCS # 12. Я что-то упускаю?

Вы пробовали переименовать экспортированный .pfxфайл, чтобы он имел .p12расширение?


9
Заставляет задуматься, почему это два разных расширения файлов, если они на самом деле одно и то же.
BrainSlugs83

29
Причина наличия двух расширений файлов историческая. PFX был расширением Microsoft, а P12 - расширением Netscape. Оба формата были адаптированы для идентичности, что означает, что разработчики могут использовать пространство имен .NET System.Security.Cryptography.X509Certificates для работы с ними обоими. См. Здесь для получения дополнительной информации.
SnapShot

6
Расширение имени файла для файлов PKCS # 12 - «.p12» или «.pfx». Microsoft «PFX» подвергся резкой критике как один из самых сложных криптографических протоколов. PKCS # 12 является преемником Microsoft "PFX". PKCS # 12 - это один из семейства стандартов, называемых Стандартами криптографии с открытым ключом (PKCS), опубликованных RSA Laboratories.
AKS

1
переименование не всегда работает т.к. например, если вы используете SoapUI и тестируете его на двустороннюю аутентификацию, он не работает. История p12 и pfx восходит к Netscape и IE. это ПОЧТИ одинаковые, но не идентичные файлы. поэтому некоторые приложения могут понимать и то, и другое независимо от расширения, а другим нужен 100% совместимый действительный p12, такой как SoapUI
M.Hefny

10

У меня были проблемы с файлом .pfx с openconnect. Переименование проблемы не решило. Я использовал keytool, чтобы преобразовать его в .p12, и он сработал.

keytool -importkeystore -destkeystore new.p12 -deststoretype pkcs12 -srckeystore original.pfx

В моем случае пароль для нового файла (new.p12) должен был совпадать с паролем для файла .pfx.


2
Не сработало, даже если я использовал один и тот же пароль для обоих. получил ошибку «keytool error: java.io.IOException: Invalid keystore format»
John Smith

5

Если вы ищете быстрый и ручной процесс с UI. Я всегда использую Mozilla Firefox для преобразования из PFX в P12. Сначала импортируйте сертификат в браузер Firefox (Параметры> Конфиденциальность и безопасность> Просмотреть сертификаты ...> Импортировать ...). После установки выполните экспорт, чтобы создать файл P12, выбрав имя сертификата в диспетчере сертификатов, затем нажмите «Резервное копирование» ... и введите имя файла, а затем введите пароль.


4

Это скорее продолжение ответа jglouie.

Если вы используете openssl для преобразования сертификата PKCS # 12 в общедоступные / частные ключи PEM, переименовывать файл не нужно. Предполагая, что файл называется cert.pfx, следующие три команды создадут открытый pem-ключ и зашифрованный частный pem-ключ:

openssl pkcs12 -in cert.pfx     -out cert.pem     -nodes -nokeys
openssl pkcs12 -in cert.pfx     -out cert_key.pem -nodes -nocerts
openssl rsa    -in cert_key.pem -out cert_key.pem -des3

Первые две команды могут запрашивать пароль импорта. Это будет пароль, предоставленный с файлом PKCS # 12.

Третья команда позволит вам указать парольную фразу шифрования для сертификата. Это то, что вы будете вводить при использовании сертификата.


Первая команда перезаписывает вторую, поэтому, возможно, просто выполните шаги 2 и 3. К сведению читателей, Des3 - это шифрование по умолчанию для закрытого ключа.
goodguys_activate

1

Запустите эту команду, чтобы изменить .certфайл на .p12:

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt 

Где server.keyнаходится ключ сервера, а server.certэто сертификат CA или самоподписанный файл сертификата.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.