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

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

Рекомендуется запускать командную строку с от имени администратора (Run As Administrator), это позволит избежать возможных ошибок, если на машине включен UAC.
Часто используемые форматы сертификатов:
PEM — очень часто используется в Linux based  системах или оборудовании, файлы такого формата сертификата используют расширение .cer, .crt, and .pem.
DER — двоичная формат сертификата. DER формат не содержит текста «BEGIN CERTIFICATE/END CERTIFICATE», формат DER чаще всего использует расширение .der
PKCS#7 или P7B — эти форматы сертификата хранятся в формате Base64 ASCII и чаще всего имеют расширения файлов .p7b или .p7c.  Файл P7B, кроме самого сертификата содержит цепочку сертификатов (открытых ключей) выпускающих центров сертификации (Intermediate CAs). Этот формат поддерживается в Microsoft Windows и Java Tomcat.
PKCS#12 или PFX — эти форматы представляют собой двоичный формат для хранения сертификата сервера, промежуточных сертификатов и закрытого ключа в одном зашифрованном файле. Файлы такого формата сертификата используют расширение .pfx and .p12. PFX файлы обычно используются на windows машинах для импорта/экспорта сертификатов и закрытого ключа.

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

Конвертирование 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)

Источник

Устаревшая версия OpenSSL: загрузить

Запись опубликована в рубрике CMS, Сертификаты, Техничка. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *