- How to convert a certificate pfx file to crt/key using openssl «
- Installing openssl
- Online ssl converters
- Openssl convert der
- Openssl convert p7b
- Openssl convert pem
- Openssl convert pfx
- Openssl on linux
- Pkcs#7/p7b format
- Tls/ssl: openssl – извлечь key и crt из pfx
- Как добавить цепочку в сертификат pkcs12 (p12, pfx), как конвертировать его в crt/cer
- Как сгенерировать файл формата .p12 из .cer?
- Конвертация pem в der
- Конвертация pem в p7b / pkcs#7
- Конвертация pem в pfx / pkcs#12
- Конвертация pfx / pkcs#12 в pem
- Конвертация ssl сертификатов посредством openssl
- Конвертация скриптом openssl-toolkit
- Разница между файлами .pfx и .crt
- Способы конвертации
- Форматы сертификатов
- Шаг 1. передача сертификата pfx с сервера windows на наш linux-сервер.
- Шаг 2. преобразование файла .pfx с помощью openssl
- Шаг 3. добавление сертификата домена ssl для apache
How to convert a certificate pfx file to crt/key using openssl «
Your PFX certificate file is protected with a password. It can be converted to CRT and KEY files using SSL:
openssl pkcs12 -in certfile.pfx -nocerts -out keyfile-encrypted.key
When you enter this command you will be asked to type in the pfx file password in order to extract the key. You will be asked to enter a passphrase for the encrypted key. The key will be stored in keyfile-encrypted.key.
The exported keyfile is encrypted but you might need it in unencrypted format. To unencrypt the key, do:
openssl rsa -in keyfile-encrypted.key -out keyfile.key
You will be asked for the passphrase that you entered in the previous step. The unencrypted key will be stored in keyfile.key.
Then it is time to extract the certificate:
openssl pkcs12 -in certfile.pfx -clcerts -nokeys -out certfile.crt
Again, you will need to enter the pfx file password in order to extract the certificate. The certificate will be stored in certfile.crt.
Installing openssl
The first thing to do is to make sure your system has OpenSSL installed: this is a tool that provides an open source implementation of SSL and TLS protocols and that can be used to convert the certificate files into the most popular X.509 v3 based formats.
Online ssl converters
If you can’t (or don’t want to) install OpenSSL, you can convert your SSL Certificates using one of these web-based online tools:
Openssl convert der
Convert DER to PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
Openssl convert p7b
Convert P7B to PEM
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
Convert P7B to PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
Openssl convert pem
Convert PEM to DER
openssl x509 -outform der -in certificate.pem -out certificate.der
Convert PEM to P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
Convert PEM to PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
Openssl convert pfx
Convert PFX to PEM
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
If you need to convert a Java Keystore file to a different format, it usually easier to create a new private key and certificates but it is possible to convert a Java Keystore to PEM format.
Openssl on linux
If you’re using Linux, you can install OpenSSL with the following YUM console command:
If your distribution is based on APT instead of YUM, you can use the following command instead:
Pkcs#7/p7b format
The PKCS#7 or P7B format is usually stored in Base64 ASCII format and has a file extension of .p7b or .p7c. P7B certificates contain “—–BEGIN PKCS7—–” and “—–END PKCS7—–” statements. A P7B file only contains certificates and chain certificates, not the private key. Several platforms support P7B files including Microsoft Windows and Java Tomcat.
Tls/ssl: openssl – извлечь key и crt из pfx
Имеется набор файлов сертификатов, переданные нам из другого агентства, где приложение работало на Windows-сервере в Azure:
# ls -l total 68 -rw-r--r-- 1 root root 1521 May 30 2000 AddTrustExternalCARoot.crt -rw-r--r-- 1 root root 1952 May 30 2000 COMODORSAAddTrustCA.crt -rw-r--r-- 1 root root 2151 Feb 12 2021 COMODORSADomainValidationSecureServerCA.crt -rw-r--r-- 1 root root 5623 Oct 28 2021 COMODO_meister.crt -rw-r--r-- 1 root root 2000 Oct 15 2021 STAR_meister_de.crt -rw-r--r-- 1 root root 10 Oct 28 2021 password.txt -rw-r--r-- 1 root root 7626 Oct 27 2021 wildcard.meister.de.p7b -rw-rw-r-- 1 admin admin 17977 Aug 4 12:08 wildcard.meister.de_2021.rar -rw-r--r-- 1 root root 3369 Oct 28 2021 wildcard_meister_de_2021.pfx
Формат SSL сертификата PKCS#12 или, как его еще называют, PFX сертификат — бинарный формат, при использовании которого в одном зашифрованном файле хранится не только ваш личный сертификат сервера и промежуточные сертификаты центра сертификации, но и ваш закрытый ключ. PFX файлы, как правило, имеют расширение .pfx или .p12. Обычно, файлы формата PFX используются на Windows серверах для импорта и экспорта файлов SSL сертификатов и вашего приватного ключа.
Источник.
Что бы извлечь сертификат из PFX – выполняем:
# openssl pkcs12 -in wildcard_meister_de_2021.pfx -out music.meister.de.crt -nodes -nokeys -cacerts Enter Import Password: MAC verified OK
Ключ:
# openssl pkcs12 -in wildcard_meister_de_2021.pfx -nocerts -out music.meister.de.key Enter Import Password: MAC verified OK Enter PEM pass phrase: Verifying - Enter PEM pass phrase:
Проверяем:
# ls -l music.meister.de.* -rw-r--r-- 1 root root 0 Aug 4 12:16 music.meister.de.crt -rw-r--r-- 1 root root 2118 Aug 4 12:17 music.meister.de.key
И копируем в каталог NGINX:
# cp music.meister.de.* /etc/nginx/ssl/music.meister.de/
Готово.
Как добавить цепочку в сертификат pkcs12 (p12, pfx), как конвертировать его в crt/cer
Бывает, что при покупке ssl сертификата цепочка сертификатов идет отдельно от самого приобретенного сертификата. Но есть великое множество систем, где необходимо загружать сертификат, в котором содержится информация о промежуточном и корневом центрах сертификации, иначе клиенты не смогут понять, откуда этот сертификат и как следствие будут ругаться на недостоверность сертификата. Сегодня хочу показать, как можно добавить цепочку в такой сертификат, а заодно между делом будет показано из pkcs12 сертификата (это сертификаты с расширение p12 и pfx, например) можно вытащить сам сертификат и закрытый ключ.
В этом деле нам поможет openssl. В большинстве Linux систем он устанавливается по умолчанию, если нет, установите его. Также есть версия openssl под винду, но я в ней описанное ниже не пробовал, скорее всего всё будет работать, но всякое бывает.
Итак, копируем в какую-нибудь папку наш сертификат и переходим в эту папку.
Первым делом нужно вытащить из сертификата сам сертификат и закрытый ключ. Выполняем команды:
openssl pkcs12 -in yourcert.pfx -nocerts -out yourcert.key openssl pkcs12 -in yourcert.pfx -clcerts -nokeys -out yourcert.crt
Нужно будет ввести пароль, который вам должны были дать, или который вы вводили при получении сертификата.
Дальше нужно открыть в каком-нибудь редакторе файл yourcert.crt и скопировать содержимое между —–BEGIN CERTIFICATE—– и —–END CERTIFICATE—– (включая эти строки) в другой файл с таким же расширением crt, напрмер yourcert1.crt. Т.е. должен появиться файл с примерно таким содержимым:
—–BEGIN CERTIFICATE—–
MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR OJv0OwWIJAJPuLodMkY
tJHUYmTbf6MG8YgYapAiPLz E/CHFHv25B O1ORRxhFnRghRy4YUVD 8M/5 bJz/
Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O T23LLb2
VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S UzeQc0PzMsNT
79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni 49Vv4M0GkPGw/zJSZrM233bkf6
c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p tdOmw1XNtB1xLaqUkL39iAigmT
Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs 1b/97l
c6wjOy0AvzVVdAlJ2ElYGn SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
UB9XVKg /XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6 eLf8ZxXhyVeE
Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y CDwIDAQABo0IwQDAd
BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
Up/L M ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I 8jRRa8YFWSQEg9zKC7F4iRO/Fjs
8PRF/iKz6y O0tlFYQXBl2 odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
iQycE0xyNN 81XHfqnHd4blsjDwSXWXavVcStkNr/ XeTWYRUc ZruwXtuhxkYze
Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr yDZ4XUmFF0sbmZgIn/f3gZ
XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB 4ALtRZh8tSQZXq9EfX7mRB
VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ 6IHdfG
jjxDah2nGN59PRbxYvnKkKj9
—–END CERTIFICATE—–
Дальше в эту же папку нужно скопировать цепочку сертификатов, которыми был подписан ваш сертификат. Если не знаете где её взять, то проще всего – открыть сертификат на виндовой машине, и в последней вкладке будет отображена цепочка.

Кликнув 2 раза по сертфикату он откроется и его можно будет экспортировать.

Дальше изменяем формат сертификатов:
openssl x509 -in intermediate.cer -out intermediate.pem openssl x509 -in root.cer -out root.pem openssl x509 -in yourcert1.crt -out yourcert1.pem
И объединяем все сертификаты в один:
cat yourcert.pem intermediate.pem root.pem >> yourcert-chain.pem
И в конце сделаем опять pkcs12 сертификат:
openssl pkcs12 -export -out yourcert -fullchain.p12 -inkey yourcert.key -in yourcert -chain.pem
Нужно будет ввести пароль от ключа, и придумать пароль для сертификата.
Всё, теперь этот сертфикат можно ставить туда, где были проблемы из-за отсутсвия цепочки.
Проверить, что всё получилось можно командой, после выполнения которой будут отображены все сертификаты в файле:
keytool -list -v -keystore yourcert-fullchain.p12 -storepass [ваш_пароль] -storetype PKCS12 | more
Как сгенерировать файл формата .p12 из .cer?
—–BEGIN CERTIFICATE—–
<ключ>
—–END CERTIFICATE—–
Нужно сгенерировать файл с расширением .p12 на основе .cer – файла. Гугл не помог, так как не понятен сам механизм генерации приватных ключей и как их “слепить” с .cer
Конвертация pem в der
Для конвертации стандартного сертификата в формате PEM в бинарный формат DER, потребуется только файл SSL сертификата. Обычно, вы его получаете в архиве вместе с промежуточными сертификатами. Как правило, в его названии указано имя вашего домена.
Конвертация pem в p7b / pkcs#7
Если же вам нужно преобразовать ваш стандартный SSL сертификат в файл формата P7B / PKCS#7, вы можете кроме SSL сертификата вашего домена загрузить также файлы с цепочками сертификатов.
Конвертация pem в pfx / pkcs#12
Обратите внимание, что для конвертации стандартного формата SSL сертификата необходимо добавить еще один файл – ваш приватный ключ. Приватный ключ – это конфиденциальная информация, которая должна быть только у вас. Поэтому центры сертификации не высылают его месте с файлами вашего сертификата.
Приватный ключ создается в момент генерации CSR запроса. Если вы генерируете CSR у себя на сервере, на нем же должен автоматически сохраниться ключ. Если вы создаете CSR запрос в специальном инструменте на нашем сайте (на странице по ссылке или во время заполнения технических данных), ключ показывается вам в конце генерации CSR (или введения технических данных), но не сохраняется в нашей базе данных. Поэтому важно, чтобы вы самостоятельно сохранили приватный ключ.
Конвертация pfx / pkcs#12 в pem
Если вам необходимо преобразовать SSL сертификат формата PFX в PEM-формат, следует открыть файл сертификата в любом текстовом редакторе и скопировать текст каждого сертификата вместе с тегами BEGIN / END в отдельные файлы, после чего их следует сохранить их как certificate.cer (для сертификата вашего сервера) и cacert.cer (для цепочки промежуточных сертификатов). То же самое следует проделать с текстом приватного ключа и сохранить его под названием privatekey.key.
Конвертация ssl сертификатов посредством openssl
OpenSSL — это надежный, коммерческий и полнофункциональный инструментарий для протоколов Transport Layer Security (TLS) и Secure Sockets Layer (SSL). А также библиотека криптографии общего назначения. Конвертация с использованием библиотеки OpenSSL считается одним из самых безопасных способов: все данные будет сохранены непосредственно на устройстве, на котором будут выполняться операции по конвертированию.
Для того чтобы воспользоваться им, вам необходимо перейти в командную строку и выполнить команды.
Предоставленные ниже примеры команд OpenSSL позволяют конвертировать сертификаты и ключи в нужный формат.
Конвертировать PEM в DER можно посредством команды:
openssl x509 -outform der -in site.crt -out site.der
Аналогично, для других типов:
PEM в P7B
openssl crl2pkcs7 -nocrl -certfile site.crt -out site.p7b -certfile site.ca-bundle
PEM в PFX
openssl pkcs12 -export -out site.pfx -inkey site.key -in site.crt -certfile site.ca-bundle
Обращаем ваше внимание, что после выполнения команды, будет запрошена установка пароля ключа.
DER в PEM
openssl x509 -inform der -in site.der -out site.crt
P7B в PEM
openssl pkcs7 -print_certs -in site.p7b -out site.cer
P7B в PFX
openssl pkcs7 -print_certs -in site.p7b -out certificate.ceropenssl pkcs12 -export -in site.cer -inkey site.key -out site.pfx -certfile site.ca-bundle
PFX в PEM
openssl pkcs12 -in site.pfx -out site.crt -nodes
Конвертация скриптом openssl-toolkit
OpenSSL ToolKit — скрипт, который облегчает работу с библиотекой OpenSSL. Работа со скриптом является безопасным решением, т.к сертификаты и ключи сертификата никуда не передаются, а используются непосредственно на вашем сервере.
Разница между файлами .pfx и .crt
В чем же отличие между сертификатами .pfx и .crt?
Прежде чем мы начнем наш процесс преобразования, позвольте мне дать вам краткое описание различий между файлами .pfx и .crt.
В принципе, сертификат (.crt-файл) является контейнером для открытого ключа.
Он включает в себя открытый ключ, имя сервера, дополнительную информацию о сервере и подпись, вычисленную центром сертификации (CA).
Во время SSL-рукопожатия, сервер отправляет свой открытый ключ клиенту, который фактически содержит свой сертификат, с несколькими другими цепочками сертификатов.
В других случаях .pfx-файл представляет собой архив PKCS # 12, похожий на контейнер, который может содержать множество объектов с дополнительной защитой паролем.
Обычно архив PKCS № 12 содержит сертификат (возможно, с набором сертификатов CA) и соответствующий ему секретный ключ.
Способы конвертации
Существует несколько способов конвертации сертификатов, которые отличаются между собой только простотой конвертирования и уровнем безопасности. Мы расскажем о трех из них.
Форматы сертификатов
Существует четыре основных формата сертификатов:
PEM — популярный формат используемый Центрами Сертификации для выписки SSL-сертификатов.
Основные расширения этого типа .pem, .crt, .cer, .key. В файлах содержатся строки вида
-----BEGIN CERTIFICATE----- -----END CERTIFICATE----- -----BEGIN PRIVATE KEY----- -----END PRIVATE KEY ------
Сертификаты PEM подходят для установки на веб-серверы nginx, apache2.
DER — это бинарная форма сертификата PEM.
Основные расширения этого типа сертификата .der .cer
Сертификаты DER подходят для установки на серверы Java.
P7B. Файлы P7B кодируются в формате Base64 и имеют расширение .p7b или .p7c.
В файлах содержатся строки вида
-----BEGIN PKCS7----- -----END PKCS7-----
Сертификаты P7B подходят для установки на серверы MS Windows, Java Tomcat
PFX — это сертификат в бинарном формате, выданный для домена, включающий в себя сертификат, цепочку сертификатов (корневые сертификаты) и приватный ключ. Имеют расширение .pfx или .p12.
Сертификаты PFX подходят для установки на серверы Windows, в частности Internet Information Services(IIS).
Шаг 1. передача сертификата pfx с сервера windows на наш linux-сервер.
Прежде всего, я экспортировал свой сертификат в сертификат .pfx с сервера Windows для своего домена.
И я скопировал этот файл pfx на свой Linux-сервер, используя SCP из своей локальной системы в папку «/ transfered_certificates /».
Вы можете использовать FTP, SCP, wget или использовать любой из этих методов для передачи сертификата pfx на ваш Linux-сервер.
# transfered_certificates]# ll -rw-r--r-- 1 root root 5409 Oct 9 10:02 c667cafbf01ffd7310db952e50eaf2b2.pfx
Шаг 2. преобразование файла .pfx с помощью openssl
Следующий шаг – извлечь наш необходимый сертификат, ключ и комплект CA из этого сертификата .pfx для домена.
Мы можем использовать команду OpenSSL для извлечения этих данных из файла pfx.
Давайте рассмотрим команды для извлечения необходимой информации из этого сертификата pfx.
Извлечение сертификата из файла pfx
Мы можем использовать эту команду для извлечения сведений о сертификате для домена из файла pfx.
Шаг 3. добавление сертификата домена ssl для apache
После преобразования файла .pfx вам нужно будет скопировать вновь созданные файлы на сервер Apache и отредактировать конфигурационный файл Apache для их использования.
