Необходимость выполнять конвертирование возникает, если имеющийся формат сертификата не подходит для ПО или оборудования.
Итак, если необходимо выполнить конвертирование одного формата сертификата в другой, то надо скачать и установить 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: загрузить