Формат SSL сертификата: как конвертировать сертификат в .PEM, .CER, .CRT, .DER, PKCS ИЛИ PFX

Формат SSL сертификата: как конвертировать сертификат в .PEM, .CER, .CRT, .DER, PKCS ИЛИ PFX ЭЦП

Pfx сертификат (формат pkcs # 12)

Формат SSL сертификата PKCS # 12 или, как его еще называют, PFX сертификат — бинарный формат, при использовании которого в одном зашифрованном файле хранится не только ваш личный сертификат сервера и промежуточные сертификаты центра сертификации, но и ваш закрытый ключ.

Данные команды OpenSSL дают возможность преобразовать сертификаты и ключи в разные форматы. Для того чтобы сделать их совместимыми с определенными видами серверов, либо ПО. К примеру, Вам необходимо конвертировать обыкновенный файл PEM, который будет работать с Apache, в формат PFX (PKCS # 12) с целью применения его с Tomcat, либо IIS.

Также существуют онлайн программы для конвертации сертификатов из одного формата в другой. Например, мы можем посоветовать SSL конвертер от SSLShopper. Используйте этот SSL конвертер для преобразования SSL-сертификатов различных форматов, таких как PEM, DER, P7B и PFX.

Чтобы использовать SSL-конвертер, просто выберите файл сертификата и его текущий тип (он определяется по формату расширения), затем выберите формат, в какой Вам необходимо преобразовать SSL сертификат и нажмите кнопку “Convert Certificate”. Обратите внимание, что в зависимости от того, в какой формат вам нужно конвертировать SSL сертификат, от вас потребуются разные исходящие файлы.

Pkcs # 7 / p7b сертификат

SSL сертификаты в формате PKCS # 7 или P7B — это файлы, которые хранятся в формате Base64 ASCII и имеют расширение файла .p7b или .p7c. P7B сертификаты содержат теги начала сертификата «—— BEGIN PKCS7 ——» и его конца «—— END PKCS7 ——«.

ЭЦП:  КриптоНУЦ - купить в Москве программный комплекс КриптоНУЦ (бессрочная, на одном рабочем месте)

Файлы в формате P7B включают в себя только ваш SSL сертификат и промежуточные SSL сертификаты. Приватный ключ при этом идет отдельным файлом. SSL сертификаты в формате PKCS # 7 / P7B поддерживают следующие платформы: Microsoft Windows и Java Tomcat.

Конвертация pem в der

Для конвертации стандартного сертификата в формате PEM в бинарный формат DER, потребуется только файлSSL сертификата. Обычно, вы его получаете в архиве вместе с промежуточными сертификатами. Как правило, в его названии указано имя вашего домена.

Конвертация формата PEM в DER

Конвертация pem в p7b / pkcs#7

Если же вам нужно преобразовать ваш стандартный SSL сертификат в файл формата P7B / PKCS#7, вы можете кроме SSL сертификата вашего домена загрузить также файлы с цепочками сертификатов. Более подробно о том, что такое цепочка SSL сертификатов, мы писали в статье о CA-bundle.

Конвертация pem в pfx / pkcs#12

Обратите внимание, что для конвертации стандартного формата SSL сертификата необходимо добавить еще один файл – ваш приватный ключ. Приватный ключ – это конфиденциальная информация, которая должна быть только у вас. Поэтому центры сертификации не высылают его месте с файлами вашего сертификата.

Приватный ключ создается в момент генерации CSR запроса. Если вы генерируете CSR у себя на сервере, на нем же должен автоматически сохраниться ключ. Если вы создаете CSR запрос в специальном инструменте на нашем сайте (на странице по ссылке или во время заполнения технических данных), ключ показывается вам в конце генерации CSR (или введения технических данных), но не сохраняется в нашей базе данных. Поэтому важно, чтобы вы самостоятельно сохранили приватный ключ.

Конвертация pfx / pkcs#12 в pem

Если вам необходимо преобразовать SSL сертификат формата PFX в PEM-формат, следует открыть файл сертификата в любом текстовом редакторе и скопировать текст каждого сертификата вместе с тегами BEGIN / END в отдельные файлы, после чего их следует сохранить их как certificate.cer (для сертификата вашего сервера) и cacert.cer (для цепочки промежуточных сертификатов). То же самое следует проделать с текстом приватного ключа и сохранить его под названием privatekey.key.

Конвертирование сертификатов при помощи openssl

Как только возникает необходимость выполнить конвертирование одного формата сертификата в другой, каждый раз возникает вопрос: «Как это сделать?». Наиболее удобно для этого использовать OpenSSL (

openssl.org

), этот сайт содержит исходные коды, если нет желания выполнять компилирование исходных кодов, то можно взять скомпилированный вариант OpenSSL, его можно скачать по ссылке: 

https://slproweb.com/products/Win32OpenSSL.html

. Необходимость выполнять конвертирование возникает, если имеющийся формат сертификата не подходит для ПО или оборудования.

Итак, если необходимо выполнить конвертирование одного формата сертификата в другой, то надо скачать и установить OpenSSL на локальном компьютере. Далее, рекомендуется скопировать с папку с OpenSSL имеющиеся файлы сертификата, для которого необходимо выполнить конвертирование, открыть командную строку и перейти в папку с установленным OpenSSL. 

Рекомендуется запускать командную строку с от имени администратора (Run As Administrator), это позволит избежать возможных ошибок, если на машине включен UAC.

Для выполнения конвертирования необходимо выполнить одну (или две) команду из списка ниже, в зависимости от исходного формата сертификата и целевого.

Конвертирование PEM в PFX

openssl pkcs12 -inkey privkey.pem -in cert.pem -export -out cert.pfx

Конвертирование x509 в PEM

openssl x509 -in certificate.cer -outform PEM -out certificate.pem 

Конвертирование PEM в DER

openssl x509 -outform der -in certificate.pem -out certificate.der 

Конвертирование DER в PEM

openssl x509 -inform der -in certificate.der -out certificate.pem 

Конвертирование PEM в  P7B

openssl crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b -certfile CACert.cer 

Конвертирование PKCS7 в PEM

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem 

Конвертирование pfx в PEM

openssl pkcs12 -in certificate.pfx -out certificate.pem 

Конвертирование PFX в PKCS#8

Для этого требуется выполнение двух команд

Step 1:Конвертирование PFX в PEM

openssl pkcs12 -in certificate.pfx -nocerts -nodes -out certificate.pem 

Step 2:Конвертирование PEM в PKCS8

openSSL pkcs8 -in certificate.pem -topk8 -nocrypt -out certificate.pk8 

Конвертирование P7B в PFX

Для этого требуется выполнение двух команд

1. Конвертирование P7B в CER

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

2. Конвертирование CER и закрытого ключа в PFX

openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile  cacert.cer 

cacert.cer — это файл сертификата выдающего центра сертификации (Intermediate CAs)

Формат сертификата der

DER формат – это бинарный тип сертификата вместо формата PEM. В PEM формате чаще всего используется расширение файла .cer, но иногда можно встретить и расширение файла .der. Поэтому чтобы отличить SSL сертификат в формате PEM от формата DER, следует открыть его в текстовом редакторе и найти теги начала и окончания сертификата (BEGIN/END). DER SSL сертификаты, как правило, используются на платформах Java.

Формат сертификата pem

PEM – наиболее популярный формат среди сертификационных центров. PEM сертификаты могут иметь расширение .pem, .crt, .cer, и .key (файл приватного ключа). Она представляют собой ASCII файлы, закодированные по схеме Base64. Когда вы открываете файл pem формата в текстовом редакторе, вы можете увидеть, что текст кода в нем начинается с тега «—— BEGIN CERTIFICATE ——» и заканчивая тегом «—— END CERTIFICATE ——«.

Apache и другие подобные серверы используют сертификаты в PEM формате. Обратите внимание, что в одном файле может содержатся несколько SSL сертификатов и даже приватный ключ, один под другим. В таком случае каждый сертификат отделен от остальных ранее указанными тегами BEGIN и END. Как правило, для установки SSL сертификата на Apache, сертификаты и приватный ключ должны быть в разных файлах.

Оцените статью
ЭЦП64