Как сделать файлы CRT и KEY из PFX | UNLIX

Как сделать файлы CRT и KEY из PFX | UNLIX Сертификаты

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.

Про сертификаты:  Шоппинг на 50 тысяч по подарочной карте магазина "Лента": номиналы, как купить и проверить баланс

Tls/ssl: openssl – извлечь key и crt из pfx

sslИмеется набор файлов сертификатов, переданные нам из другого агентства, где приложение работало на 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—–

Дальше в эту же папку нужно скопировать цепочку сертификатов, которыми был подписан ваш сертификат. Если не знаете где её взять, то проще всего – открыть сертификат на виндовой машине, и в последней вкладке будет отображена цепочка.

Про сертификаты:  Процедура получения сертификата пожарной безопасности

Как добавить цепочку в сертификат pkcs12 (p12, pfx), как конвертировать его в crt/cer

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

Как добавить цепочку в сертификат pkcs12 (p12, pfx), как конвертировать его в crt/cer

Дальше изменяем формат сертификатов:

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?

Есть файл с раширением .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 для их использования.

Оцените статью
Мой сертификат
Добавить комментарий