На чтение 2 мин Опубликовано 28.04.2021
Может быть несколько причин, по которым вам будет необходимо преобразовать сертификат безопасности в другой формат.
Одна из причин заключается в том, что ваша система не принимает существующий формат или ваш файл сертификата несовместим с приложением.
Какой бы ни была ваша причина ковертирования форматов файлов сертификатов , вы можете легко сделать это с помощью наиболее удобной и надежной утилиты OpenSSL.
OpenSSL – это полнофункциональная утилита командной строки с открытым исходным кодом, которая обычно используется для генерации CSR и закрытых ключей, установки сертификатов SSL/TLS, преобразования форматов сертификатов безопасности и т. д.
В сегодняшнем руководстее мы расскажем, как конвертировать файл CER в PEM.
Примечание. Показанные здесь команды были продемонстрированы на терминале Ubuntu 20.04 LTS но будут работать в других системах Linux/Unix. Чтобы открыть терминал на рабочем столе Ubuntu, используйте сочетание клавиш Ctrl + Alt + T, чтобы открыть его.
Содержание
- Файл CER
- Файл PEM
- Конвертирование файла CER в PEM
Файл CER
Файл CER ипользуется для хранения сертификата X.509.
Он предоставляется и выдается CA (центром сертификации), который проверяет подлинность веб-сайта.
Он содержит информацию о владельце сертификата и открытом ключе.
Файл PEM
PEM (Privacy Enhanced Mail) – это файл ASCII в кодировке bas64. Этот формат используется для хранения и отправки криптографических ключей, сертификатов и других промежуточных сертификатов.
Конвертирование файла CER в PEM
Инструментарий OpenSSL по умолчанию установлен в Ubuntu и Centos.
Однако, если его там нет, вы можете установить его с помощью следующей команды в Терминале:
Введите пароль sudo.
Когда вам будет предложено выбрать вариант y/n, нажмите y, чтобы продолжить.
После этого начнется установка OpenSSL в вашей системе.
Чтобы преобразовать файл CER в PEM, используйте следующий синтаксис:
$ openssl x509 -inform der -in cert.cer -outform pem -out cert.pem
В приведенном выше синтаксисе cert.pem – это имя сертификата, который вы хотите преобразовать в формат CER, а cert.cer – это имя сертификата после преобразования.
Вот таким простым образом вы можете преобразовать файл CER в PEM с помощью утилиты OpenSSL.
Пожалуйста, не спамьте и никого не оскорбляйте.
Это поле для комментариев, а не спамбокс.
Рекламные ссылки не индексируются!
Для успешной установки и функционирования SSL сертификатов на различных платформах и устройствах, нередко их необходимо предоставить в разных форматах. Например, серверы Windows используют PFX файлы, для Apache серверов необходимы PEM файлы с расширением .crt или .cer. В этой статье мы поможем вам разобраться в следующих вопросах:
- Какие бывают форматыSSL сертификатов?
- Чем они отличаются?
- Как конвертировать SSL сертификаты из одного формата в другой?
Формат сертификата PEM
PEM – наиболее популярный формат среди сертификационных центров. PEM сертификаты могут иметь расширение .pem, .crt, .cer, и .key (файл приватного ключа). Она представляют собой ASCII файлы, закодированные по схеме Base64. Когда вы открываете файл pem формата в текстовом редакторе, вы можете увидеть, что текст кода в нем начинается с тега «—— BEGIN CERTIFICATE ——» и заканчивая тегом «—— END CERTIFICATE ——«. Apache и другие подобные серверы используют сертификаты в PEM формате. Обратите внимание, что в одном файле может содержатся несколько SSL сертификатов и даже приватный ключ, один под другим. В таком случае каждый сертификат отделен от остальных ранее указанными тегами BEGIN и END. Как правило, для установки SSL сертификата на Apache, сертификаты и приватный ключ должны быть в разных файлах.
Формат сертификата DER
DER формат – это бинарный тип сертификата вместо формата PEM. В PEM формате чаще всего используется расширение файла .cer, но иногда можно встретить и расширение файла .der. Поэтому чтобы отличить SSL сертификат в формате PEM от формата DER, следует открыть его в текстовом редакторе и найти теги начала и окончания сертификата (BEGIN/END). DER SSL сертификаты, как правило, используются на платформах Java.
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.
PFX сертификат (формат PKCS # 12)
Формат SSL сертификата PKCS # 12 или, как его еще называют, PFX сертификат — бинарный формат, при использовании которого в одном зашифрованном файле хранится не только ваш личный сертификат сервера и промежуточные сертификаты центра сертификации, но и ваш закрытый ключ. PFX файлы, как правило, имеют расширение .pfx или .p12. Обычно, файлы формата PFX используются на Windows серверах для импорта и экспорта файлов сертификатов и вашего приватного ключа.
Конвертация SSL сертификатов в OpenSSL
Данные команды OpenSSL дают возможность преобразовать сертификаты и ключи в разные форматы. Для того чтобы сделать их совместимыми с определенными видами серверов, либо ПО. К примеру, Вам необходимо конвертировать обыкновенный файл PEM, который будет работать с Apache, в формат PFX (PKCS # 12) с целью применения его с Tomcat, либо IIS.
- Конвертировать PEM в DER
openssl x509 -outform der -in certificate.pem -out certificate.der
- Конвертировать PEM в P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
- Конвертировать PEM в PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
- Конвертировать DER в PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
- Конвертировать P7B в PEM
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
- Конвертировать P7B в PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.ceropenssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
- Конвертировать PFX в PEM
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
Онлайн конвертер SSL сертификатов
Также существуют онлайн программы для конвертации сертификатов из одного формата в другой. Например, мы можем посоветовать SSL конвертер от SSLShopper. Используйте этот SSL конвертер для преобразования SSL-сертификатов различных форматов, таких как PEM, DER, P7B и PFX. Чтобы использовать SSL-конвертер, просто выберите файл сертификата и его текущий тип (он определяется по формату расширения), затем выберите формат, в какой Вам необходимо преобразовать SSL сертификат и нажмите кнопку “Convert Certificate”. Обратите внимание, что в зависимости от того, в какой формат вам нужно конвертировать SSL сертификат, от вас потребуются разные исходящие файлы.
Конвертация PEM в DER
Для конвертации стандартного сертификата в формате PEM в бинарный формат DER, потребуется только файлSSL сертификата. Обычно, вы его получаете в архиве вместе с промежуточными сертификатами. Как правило, в его названии указано имя вашего домена.
Конвертация 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.
Чтобы вы могли без проблем пользоваться SSL-сертификатом на разных платформах и устройствах, иногда требуется изменить его формат. Дело в том, что некоторые форматы лучше подходят для работы с различными видами программного обеспечения. Далее мы расскажем о том, какие форматы бывают, в каких случаях используются и какими способами можно конвертировать один формат сертификата в другой.
Форматы сертификатов
Существует четыре основных формата сертификатов:
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).
Способы конвертации
Существует несколько способов конвертации сертификатов, которые отличаются между собой только простотой конвертирования и уровнем безопасности. Мы расскажем о трех из них.
Конвертация 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
Конвертация при помощи онлайн-сервисов
Для конвертации сертификатов самый удобный способ — использование специальных сайтов, например, https://ssl4less.ru/ssl-tools/convert-certificate.html
Этот способ считается наименее безопасным методом: никогда не знаешь, сохраняет ли автор сайта ваш приватный ключ при конвертации.
Чтобы воспользоваться этим способом, вы просто переходите по ссылке на нужный сайт, выбираете нужные вам форматы и прикрепляете файл или файлы сертификата.
Конвертация с PEM в DER
Для конвертации необходим только файл сертификата .crt, .pem
Конвертация с PEM в P7B
В этом случае существует возможность добавить также цепочку сертификатов.
Что такое цепочка сертификатов и для чего она нужна, можно узнать в статье «Что такое корневой сертификат»
Конвертация с PEM в PFX
В этом случае необходимо обратить внимание на то, что обязателен ключ сертификата, а также необходимо установить пароль ключа.
Конвертация из DER в PEM
Конвертация из P7B в PEM
Конвертация из P7B в PFX
Конвертация из PFX в PEM
Конвертация скриптом openssl-ToolKit
OpenSSL ToolKit — скрипт, который облегчает работу с библиотекой OpenSSL. Работа со скриптом является безопасным решением, т.к сертификаты и ключи сертификата никуда не передаются, а используются непосредственно на вашем сервере.
Для начала работы скрипт необходимо скачать и запустить. Сделать это можно одной командой:
echo https://github.com/tdharris/openssl-toolkit/releases/download/1.1.0/openssl-toolkit-1.1.0.zip | xargs wget -qO- -O tmp.zip && unzip -o tmp.zip && rm tmp.zip && ./openssl-toolkit/openssl-toolkit.sh
После выполнения команды откроется следующее окно:
Нас интересует пункт 2. Convert certificates
После перехода в пункт 2. появится следующее меню, с выбором нужного типа конвертирования
После выбора преобразования, в данном случае PEM to FPX, скрипт предложит выбрать директорию с сертификатами на том устройстве, где запускается скрипт.
В нашем случае мы их скачали в директорию /home/ivan/crt/
После корректного ввода директории, скрипт отобразит все файлы в этой директории.
Далее нужно ввести имя сертификата, который будем конвертировать, в нашем случае это site.pem
Обращаю ваше внимание, что для корректной конвертации, с PEM в PFX, необходимо вручную объединить файл сертификата, цепочки и ключа в один файл, иначе будет возникать ошибка конвертации.
Сделать это можно простой командой
cat site.crt site.ca-bundle site.key > site.pem
Данное действие необходимо только для конвертации из PEM в PFX.
Мы рассмотрели пример конвертации PEM в PFX. Этим же путем можно конвертировать сертификаты в другие форматы. Единственное, что вам уже не понадобится шаг с объединением файлов.
Пример конвертации PEM В DER.
SSL Конвертер позволяет конвертировать SSL-сертификаты в различные форматы: pem, der, p7b и pfx. Данные форматы сертификатов требуются для разных платформ и устройств. К примеру, Windows-серверы требуют .pfx файл, а Apache-сервер — PEM (.crt, .cer) файлы.
Как использовать SSL-конвертер?
Чтобы использовать SSL-конвертер, просто выберите файл сертификата и его тип (тип будет автоматически определен на основе расширения файла). Затем вам нужно выбрать тип сертификата для конвертации. Чтобы осуществить конвертацию, щелкните по кнопке «Конвертировать».
PEM формат
PEM формат — один из самых используемых и популярных форматов файлов сертификатов. Обычно PEM-файлы имеют расширения .pem, .crt, .cer, и .key. Они представляют собой Base64-кодированные ASCII-файлы и содержат строки «—— BEGIN CERTIFICATE ——» и «—— END CERTIFICATE ——«. PEM-формат используется для серверных сертификатов, промежуточных сертификатов и приватных ключей. Сертификаты в формате PEM используются для разных серверов, включая Apache и т.д. В некоторых случаях PEM-сертификат и приватный ключ могут быть объединены в отдельный файл, однако для большинства платформ сертификат и приватный ключ должны быть разделены между собой.
DER формат
DER формат — двоичная форма сертификата. Файлы в этом формате могут иметь расширение .der или .cer. Единственное различие между ними — это строки BEGIN / END. Любой тип сертификатов и приватных ключей может быть представлен в формате DER. Обычно этот формат используется с платформой Java. С помощью SSL-конвертера вы можете конвертировать сертификаты в DER формат.
PKCS # 7 / P7B
PKCS # 7 или P7B — это Base64 ASCII-файл с расширением .p7b или .p7c. P7B сертификаты содержат строку «—— BEGIN PKCS7 ——» и «—— END PKCS7 ——«. Файлы этих сертификатов не включают приватный ключ. Файлы P7B содержат только сертификаты и цепочки сертификатов. P7B формат поддерживается такими платформами, как Microsoft Windows и Java Tomcat.
PKCS # 12 / PFX
PKCS # 12 или PFX — двоичный формат, используемый для хранения промежуточных сертификатов, серверных сертификатов, а также приватных ключей в отдельном файле. Расширения PFX-файла — .pfx и .p12. Большинство этих файлов используется на машинах с Windows с целью импорта и экспорта приватных ключей и сертификатов. После конвертации PFX в PEM вам нужно будет открыть полученный файл в текстовом редакторе и сохранить каждый сертификат и приватный ключ в отдельных файлах — к примеру, cert.cer, CA_Cert.cer и private.key. Вы должны копировать необходимые фрагменты кода вместе с BEGIN / END.
Для успешной установки и функционирования SSL сертификатов на различных платформах и устройствах, нередко их необходимо предоставить в разных форматах. Например, серверы Windows используют PFX файлы, для Apache серверов необходимы PEM файлы с расширением .crt или .cer.
Содержимое
-
1 ОБЗОР ФОРМАТОВ SSL CЕРТИФИКАТОВ
- 1.1 ФОРМАТ СЕРТИФИКАТА PEM
- 1.2 ФОРМАТ СЕРТИФИКАТА DER
- 1.3 PKCS # 7 / P7B СЕРТИФИКАТ
- 1.4 PFX СЕРТИФИКАТ (ФОРМАТ PKCS # 12)
- 2 КОНВЕРТАЦИЯ SSL СЕРТИФИКАТОВ В OPENSSL
-
3 ОНЛАЙН КОНВЕРТЕР SSL СЕРТИФИКАТОВ
- 3.1 КОНВЕРТАЦИЯ PEM В DER
- 3.2 КОНВЕРТАЦИЯ PEM В P7B / PKCS#7
- 3.3 КОНВЕРТАЦИЯ PEM В PFX / PKCS#12
- 4 КОНВЕРТАЦИЯ PFX / PKCS#12 В PEM
ОБЗОР ФОРМАТОВ SSL CЕРТИФИКАТОВ
ФОРМАТ СЕРТИФИКАТА PEM
PEM – наиболее популярный формат среди сертификационных центров. PEM сертификаты могут иметь расширение .pem, .crt, .cer, и .key (файл приватного ключа). Она представляют собой ASCII файлы, закодированные по схеме Base64. Когда вы открываете файл pem формата в текстовом редакторе, вы можете увидеть, что текст кода в нем начинается с тега «—— BEGIN CERTIFICATE ——» и заканчивая тегом «—— END CERTIFICATE ——«. Apache и другие подобные серверы используют сертификаты в PEM формате. Обратите внимание, что в одном файле может содержатся несколько SSL сертификатов и даже приватный ключ, один под другим. В таком случае каждый сертификат отделен от остальных ранее указанными тегами BEGIN и END. Как правило, для установки SSL сертификата на Apache, сертификаты и приватный ключ должны быть в разных файлах.
ФОРМАТ СЕРТИФИКАТА DER
DER формат – это бинарный тип сертификата вместо формата PEM. В PEM формате чаще всего используется расширение файла .cer, но иногда можно встретить и расширение файла .der. Поэтому чтобы отличить SSL сертификат в формате PEM от формата DER, следует открыть его в текстовом редакторе и найти теги начала и окончания сертификата (BEGIN/END). DER SSL сертификаты, как правило, используются на платформах Java.
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.
PFX СЕРТИФИКАТ (ФОРМАТ PKCS # 12)
Формат SSL сертификата PKCS # 12 или, как его еще называют, PFX сертификат — бинарный формат, при использовании которого в одном зашифрованном файле хранится не только ваш личный сертификат сервера и промежуточные сертификаты центра сертификации, но и ваш закрытый ключ. PFX файлы, как правило, имеют расширение .pfx или .p12. Обычно, файлы формата PFX используются на Windows серверах для импорта и экспорта файлов сертификатов и вашего приватного ключа.
КОНВЕРТАЦИЯ SSL СЕРТИФИКАТОВ В OPENSSL
Данные команды OpenSSL дают возможность преобразовать сертификаты и ключи в разные форматы. Для того чтобы сделать их совместимыми с определенными видами серверов, либо ПО. К примеру, Вам необходимо конвертировать обыкновенный файл PEM, который будет работать с Apache, в формат PFX (PKCS # 12) с целью применения его с Tomcat, либо IIS.
- Конвертировать PEM в DER openssl x509 -outform der -in certificate.pem -out certificate.der
- Конвертировать PEM в P7B openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
- Конвертировать PEM в PFX openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
- Конвертировать DER в PEM openssl x509 -inform der -in certificate.cer -out certificate.pem
- Конвертировать P7B в PEM openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
- Конвертировать P7B в PFX openssl pkcs7 -print_certs -in certificate.p7b -out certificate.ceropenssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
- Конвертировать PFX в PEM openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
ОНЛАЙН КОНВЕРТЕР SSL СЕРТИФИКАТОВ
Также существуют онлайн программы для конвертации сертификатов из одного формата в другой. Например, мы можем посоветовать SSL конвертер от SSLShopper. Используйте этот SSL конвертер для преобразования SSL-сертификатов различных форматов, таких как PEM, DER, P7B и PFX. Чтобы использовать SSL-конвертер, просто выберите файл сертификата и его текущий тип (он определяется по формату расширения), затем выберите формат, в какой Вам необходимо преобразовать SSL сертификат и нажмите кнопку “Convert Certificate”. Обратите внимание, что в зависимости от того, в какой формат вам нужно конвертировать SSL сертификат, от вас потребуются разные исходящие файлы.
КОНВЕРТАЦИЯ 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.
I have a .cer
certificate and I would like to convert it to the .pem
format.
If I remember correctly, I used to be able to convert them by exporting the .cer
in Base64, then renaming the file to .pem
.
How do I convert a .cer
certificate to .pem
?
asked Apr 1, 2011 at 13:53
systempuntooutsystempuntoout
1,9752 gold badges12 silver badges10 bronze badges
Convert a DER file (.crt .cer .der) to PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
Source
Craig Watson
9,4753 gold badges30 silver badges46 bronze badges
answered Apr 1, 2011 at 13:57
3
convert a .cer file in .pem
open a terminal and run the following command
openssl x509 -inform der -in certificate.cer -outform pem -out certificate.pem
Where certificate.cer is the source certificate file you want to convert and certificate.pem is the name of the converted certificate.
answered Dec 14, 2016 at 7:19
AkhileshAkhilesh
3212 silver badges2 bronze badges
When openssl is not available on your system you could alternatively convert certificates with the java keytool.
However you have to create a java keystore (JKS) first. The certificates can then be imported and exported in different formats.
keytool -genkey -alias test -keystore <key store file>
keytool -delete -alias test -keystore <key store file>
Converting from DER to PEM:
keytool -import -trustcacerts -alias test -file <der certificate file> -keystore test.keystore
keytool -exportcert -alias test -file <pem certificate file> -rfc -keystore test.keystore
This blog post explains how to convert certificate formats in detail
answered Nov 24, 2014 at 18:52
2
Answer
-
If your certificate is exported with DER encoding, then use the accepted answer:
openssl x509 -inform der -in certificate.cer -out certificate.pem
-
If your certificate is exported with Base64 encoding, then rename the extension
.cer
to.pem
. The file is already in.pem
format.
How to tell that your .cer
file is in .pem
format?
See this stack-o answer, quoted here:
A .pem format certificate will most likely be ASCII-readable. It will
have a line-----BEGIN CERTIFICATE-----
, followed by base64-encoded
data, followed by a line-----END CERTIFICATE-----
. There may be other
lines before or after.
For example, a .pem
certificate (shortened):
-----BEGIN CERTIFICATE-----
MIIG6DCCBNCgAwIBAgITMgAAGCeh8HZoCVDcnwAAAAAYJzANBgkqhkiG9w0BAQsF
ADBAMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNkb3Ix
EjAQBgNVBAMTCURPUi1TVUJDQTAeFw0yMDA1MDExNTI0MTJaFw0yMjA1MDExNTI0
MTJaMBYxFDASBgNVBAMTC3dwZG9yd2VibDE2MIIBIjANBgkqhkiG9w0BAQEFAAOC
...
-----END CERTIFICATE-----
answered Jul 2, 2020 at 16:25
DavidDavid
3643 silver badges10 bronze badges
We mustn’t forget that Windows can do this natively:
certutil.exe -encode <der file> <pem file>
and in the other direction:
certutil.exe -decode <pem file> <der file>
It works with certificates and PKCS#10 requests.
answered Nov 25, 2022 at 18:39
garethTheRedgarethTheRed
4,18413 silver badges22 bronze badges
Just changing the file extension worked for me:
mv filename.cer filename.pem
answered Jul 6, 2022 at 7:54
MohanMohan
1012 bronze badges
1
Перевод: SSL Converter
Воспользуйтесь этим преобразователем SSL для преобразования сертификатов SSL между различными форматами, такими как pem, der, p7b и pfx.
Разные платформы и устройства требуют преобразовывать сертификаты SSL в разные форматы. Например, Windows-сервер экспортирует и импортирует файлы .pfx, а сервер Apache использует отдельные файлы PEM (.crt, .cer). Чтобы воспользоваться преобразователем SSL, просто выберите файл сертификата и его текущий тип (произойдёт попытка определить тип по расширению файла), затем выберите тип, в который нужно преобразовать сертификат и нажмите Преобразовать сертификат. Подробности о различных типах сертификатов SSL и о том, как можно преобразовать сертификаты на своём компьютере с помощью OpenSSL, смотрите ниже.
Формат PEM
Формат PEM — наиболее распространённый формат сертификатов, выпускаемых удостоверяющими центрами. Сертификаты PEM обычно имеют расширения .pem, .crt, .cer и .key. Это ASCII-файлы с информацией, закодированной в Base64, и содержащие выражения «——BEGIN CERTIFICATE——» и «——END CERTIFICATE——«. Сертификаты сервера, промежуточные сертификаты и приватные ключи могут быть записаны в формате PEM.
Apache и другие подобные серверы используют сертификаты в формате PEM. Несколько сертификатов PEM и даже приватный ключ можно поместить в одном файле друг за другом, но большинство платформ, таких как Apache, берут сертификат и приватный ключ из отдельных файлов.
Формат DER
Формат DER — это просто двоичный вид сертификата, в отличие от PEM, который закодирован в символы ASCII. Иногда встречается расширение файла .der, но чаще у файла бывает расширение .cer. Чтобы узнать, имеет ли этот файл формат DER или PEM, можно открыть его в текстовом редакторе и поискать выражения BEGIN и END. Все типы сертификатов и приватных ключей могут быть представлены в формате DER. Обычно DER используется на платформе Java. Инструмент для преобразования SSL умеет преобразовывать в формат DER только сертификаты. Если нужно преобразовать в формат DER приватный ключ, воспользуйтесь командами OpenSSL, приведёнными на этой странице.
Формат PKCS#7/P7B
Формат PKCS#7 или P7B обычно сохраняется в виде ASCII, закодированным в Base64, и имеет расширение .p7b или .p7c. Сертификаты P7B содержат выражения «——BEGIN PKCS7——» и «——END PKCS7——«. Файл P7B содержит только сертификаты и цепочки сертификатов, но не приватные ключи. Некоторые платформы поддерживают файлы P7B, в том числе Microsoft Windows и Java Tomcat.
Формат PKCS#12/PFX
Формат PKCS#12 или PFX — это двоичный формат для хранения сертификата сервера, промежуточных сертификатов и приватного ключа в одном зашифрованном файле. Файлы PFX обычно имеют расширение .pfx или .p12. Файлы PFX обычно используются на компьютерах под управлением Windows для импорта и экспорта сертификатов и приватных ключей.
При преобразовании файла PFX в формат PEM, OpenSSL поместит все сертификаты и приватный ключ в один файл. Для этого нужно открыть файл в текстовом редакторе и скопировать каждый сертификат и приватный ключ (включая выражения BEGIN/END) в отдельные текстовые файлы и сохранить их под именами certificate.cer, CACert.cer и privateKey.key соответственно.
Команды OpenSSL для преобразования сертификатов SSL на своём компьютере
Настоятельно рекомендуется преобразовывать файлы .pfx на своём компьютере с помощью OpenSSL. Это позволит сохранить приватный ключ в тайне. Воспользуйтесь следующими командами OpenSSL для преобразования сертификата SSL в различные форматы на своём компьютере:
Преобразование PEM с помощью OpenSSL
- Преобразование PEM в DER:
openssl x509 -outform der -in certificate.pem -out certificate.der
- Преобразование PEM в P7B:
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
- Преобразование PEM в PFX:
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
Преобразование DER с помощью OpenSSL
- Преобразование DER в PEM:
openssl x509 -inform der -in certificate.cer -out certificate.pem
Преобразование P7B с помощью OpenSSL
- Преобразование P7B в PEM:
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
- Преобразование P7B в 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
Преобразование PFX с помощью OpenSSL
- Преобразование PFX в PEM:
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
Как только возникает необходимость выполнить конвертирование одного формата сертификата в другой, каждый раз возникает вопрос: «Как это сделать?». Наиболее удобно для этого использовать OpenSSL (
openssl.org
), этот сайт содержит исходные коды, если нет желания выполнять компилирование исходных кодов, то можно взять скомпилированный вариант OpenSSL, его можно скачать по ссылке:
https://slproweb.com/products/Win32OpenSSL.html
. Необходимость выполнять конвертирование возникает, если имеющийся формат сертификата не подходит для ПО или оборудования.
Итак, если необходимо выполнить конвертирование одного формата сертификата в другой, то надо скачать и установить 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 машинах для импорта/экспорта сертификатов и закрытого ключа.
Для выполнения конвертирования необходимо выполнить одну (или две) команду из списка ниже, в зависимости от исходного формата сертификата и целевого.
Конвертирование 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)
SSL-сертификаты все плотнее входят в нашу жизнь и трудно представить современного администратора, никогда не имевшего с ними дело. Но, как показывает практика, работа с сертификатами все еще вызывает затруднение у многих наших коллег и виной тому недостаточный объем теоретических знаний. Наиболее частые сложности возникают с форматами сертификатов, поэтому мы сегодня решили внести ясность в этот вопрос и разобрать какие форматы сертификатов бывают и как можно выполнять преобразования между ними.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Форматы сертификатов
Начнем с того, что термин сертификат не является полностью корректным. Если мы говорим об инфраструктуре открытых ключей (PKI), то в ее основе лежит понятие ключевой пары — открытого и закрытого ключа. Сертификат — это средство распространения открытого ключа, которое содержит сам открытый ключ и ряд дополнительной информации. Сертификат является публичным и общедоступным. Закрытый ключ, наоборот, секретная информация и должен храниться в безопасном месте.
Но, как говорится, из песни слов не выкинешь и понятие сертификат широко используется и специалистами, и простыми пользователями в самом широком смысле: подразумевая и сам сертификат, и ключ сертификата, и полностью ключевую пару. Поэтому, каждый раз, когда вам встречается это слово, то нужно, прежде всего определиться в каком контексте оно употребляется и что именно значит.
Также при работе с сертификатами вам обязательно встретится аббревиатура X.509, это стандарт для сертификатов и ключей PKI, определяющий их формат, структуру и способы работы с ними. Поэтому, когда речь идет о X.509, то мы понимаем, что это сертификаты PKI.
Но перейдем к форматам. Серьезную путаницу вносит то, что расширения сертификатов и ключей не всегда четко указывают на формат, точнее даже наоборот и точно убедиться с чем именно вы имеете дело можно только ознакомившись с содержимым. Мы не будем рассматривать все возможные варианты форматов, ограничимся только самыми ходовыми.
Формат DER
Это бинарный формат для сертификатов и ключей, фактически он является исходным, так как изначально ключи — это некоторые бинарные сущности. Чаще всего используется на платформе Java и в Windows, там это формат по умолчанию. Могут использовать расширения .der и .cer, но ничего не мешает дать такому файлу другое широко используемое расширение.
Поэтому для выяснения формата файла следует просмотреть его содержимое или воспользоваться командой file в Linux:
file mycert.cer
Если сертификат бинарный, то в ответ вы получите:
mycert.cer: data
Все тоже самое справедливо и для закрытого ключа, который чаще всего имеет расширение .key.
Формат PEM
Данный формат наиболее популярен и распространен, особенно в открытом ПО. Представляет кодированный при помощи Base64 формат DER и по сути является обычным текстовым файлом. Характерными особенностями являются обязательные строки, между которыми находится содержимое сертификата или ключа:
-----BEGIN CERTIFICATE-----
Содержимое сертификата Base64 ASCII
-----END CERTIFICATE-----
А команда file определяет такой файл как:
mycert.crt: ASCII text, with CRLF line terminators
Контейнер в формате PEM может содержать один или несколько сертификатов, закрытый ключи или сертификат(ы) и закрытый ключ одновременно. В этом случае каждый из них обрамляется обязательными строками BEGIN и END. Кроме расширения .pem могут также использоваться .cer, .crt и .key для ключа. Поэтому определять формат следует по типу содержимого.
Формат PKCS #7
Специальный контейнер, предназначенный для хранения сертификатов и/или списков отзыва (CRL), может иметь расширения .p7b или .p7c. Важной особенностью является то, что данный формат не предназначен для хранения закрытого ключа и используется только для сертификатов. Чаще всего используется в Windows системах.
Может иметь как DER, так и PEM формат, в последнем случае файл имеет обязательные строки:
-----BEGIN PKCS7-----
Содержимое Base64 ASCII
-----END PKCS7-----
Данный контейнер в основном определяется по расширению, а его внутренний формат по содержимому.
Формат PKCS #12
Данный формат предназначен для хранения закрытого ключа и сертификата, кроме них может содержать полную цепочку доверия и список отзыва. Часто используется для распространения и хранения ключевой пары. Наибольшее распространение имеет в Windows системах и является дальнейшим развитием контейнера PFX от Microsoft, в настоящий момент эти аббревиатуры употребляются как синонимы.
Имеет бинарный формат и защищен паролем (можно оставить пустой пароль), определяется по расширениям .pfx, .p12, .pkcs12.
Преобразование форматов
Для всех дальнейших действий мы будем использовать OpenSSL на платформе Linux, для работы в среде Windows вам потребуется несколько изменить синтаксис в части определения путей. Все команды выполняются от имени того пользователя, который является владельцем сертификата. Также помним, что форматом по умолчанию для OpenSSL является PEM.
PEM в DER
Для преобразования сертификата из PEM в DER выполните:
openssl x509 -in cert.pem -out cert.der -outform DER
Для закрытого ключа:
openssl rsa -in privkey.pem -out privkey.der -outform DER
Для получения нужного результата мы явно указываем выходной формат — DER.
DER в PEM
Синтаксис команд схож, для сертификата:
openssl x509 -inform DER -in cert.der -out cert.pem
Для закрытого ключа:
openssl rsa -inform DER -in privkey.der -out privkey.pem
Обратите внимание, что в данной команде мы, наоборот, явно указываем входной формат.
PEM в PKCS #7
Для примера объединим два сертификата: собственно наш сертификат и сертификат удостоверяющего центра.
openssl crl2pkcs7 -nocrl -certfile cert.pem -certfile cacert.pem -out cert.p7c
Ключ -nocrl указывает, что мы не включаем в контейнер список отзыва. Каждый включаемый в контейнер сертификат задается отдельной опцией -certfile.
Для создания контейнера с CRL используем команду:
openssl crl2pkcs7 -in crl.pem -certfile cert.pem -certfile cacert.pem -out cert.p7c
Так как мы не указывали ни входной, ни выходной форматы, то на входе используем сертификаты формата PEM и получаем контейнер с тем же форматом. Для получения файла в формате DER укажите:
openssl crl2pkcs7 -nocrl -certfile cert.pem -certfile cacert.pem -out cert.p7c -outform DER
Преобразовать сертификаты в формате DER сразу в PKCS #7 нельзя, их следует сначала преобразовать в формат PEM.
PEM в PKCS #12
Создадим контейнер, в который поместим собственно ключевую пару и дополнительный сертификат CA:
openssl pkcs12 -export -in cert.pem -inkey privkey.pem -certfile cacert.pem -out cert.p12
В ключе -in указываем сертификат, связанный с закрытым ключом, в -inkey — закрытый ключ, затем добавляем нужное количество опций -certfile для включения дополнительных сертификатов, которые будут формировать цепочку доверия.
PKCS #7 в PEM
Мы можем вывести все сертификаты файла PKCS #7 в PEM командой:
openssl pkcs7 -print_certs -in cert3.p7b -out certs.pem
Если исходный файл в формате DER, то добавьте:
openssl pkcs7 -print_certs -inform DER -in cert3.p7b -out certs.pem
Напоминаем, что определять формат PKCS #7 следует по содержимому.
PKCS #12 в PEM
Данный контейнер может содержать как ключевую пару, так и дополнительные сертификаты, чтобы вывести их все в формат PEM используйте команду:
openssl pkcs12 -in cert.p12 -out certs.pem -nodes
Последний ключ -nodes указывает на то, что не нужно шифровать закрытый ключ.
Но что, если нам нужно получить только отдельные части контейнера? Ничего сложного.
Для вывода только сертификата и закрытого ключа используйте:
openssl pkcs12 -in cert.p12 -clcerts -out certs.pem -nodes
Только сертификата:
openssl pkcs12 -in cert.p12 -clcerts -out cert.pem -nodes -nokeys
Так как мы не извлекаем ключ, то опция -nodes как бы не нужна, но она подавляет появления запроса на пароль для экспортируемого файла.
Для вывода только сертификата(ов) CA:
openssl pkcs12 -in cert.p12 -cacerts -out cacert.pem -nodes -nokeys
Только закрытого ключа:
openssl pkcs12 -in cert.p12 -out privkey.pem -nodes -nocerts
Как видим, при помощи OpenSSL не составляет никакого труда разобрать контейнер PKCS #12 на составляющие.
Установить / снять пароль с закрытого ключа
Еще одна часто встречающаяся задача: снять пароль с закрытого ключа, для этого используйте команду:
openssl rsa -in privkey.key -out privkey-nopass.key
Обратная операция выполняется командой:
openssl rsa -des3 -in privkey.key -out privkey-pass.key
Где -des3 указывает на алгоритм шифрования, допустимы значения: -aes128, -aes192, -aes256, -aria128, -aria192, -aria256, -camellia128, -camellia192, -camellia256, -des, -des3, -idea. Перед их использованием следует уточнить, какие именно из них поддерживает тот софт, с которым вы собираетесь использовать ключ.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Table of Contents
- Installing OpenSSL
- OpenSSL on Linux
- OpenSSL on Windows
- From PEM (pem, cer, crt) to PKCS#12 (p12, pfx)
- From PKCS#12 to PEM
- From DER (.der, cer) to PEM
- From PEM to DER
- From PEM to PKCS#7 (.p7b, .p7c)
- From PKCS#7 to PEM
- From PKCS#7 to PFX
- Online SSL Converters
- Conclusions
In this post, part of our «how to manage SSL certificates on Windows and Linux systems» series, we’ll show how to convert an SSL certificate into the most common formats defined on X.509 standards: the PEM format and the PKCS#12 format, also known as PFX. The conversion process will be accomplished through the use of OpenSSL, a free tool available for Linux and Windows platforms.
Before entering the console commands of OpenSSL we recommend taking a look to our overview of X.509 standard and most popular SSL Certificates file formats — CER, CRT, PEM, DER, P7B, PFX, P12 and so on.
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.
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:
> apt—get install openssl |
OpenSSL on Windows
If you’re using Windows, you can install one of the many OpenSSL open-source implementations: the one we can recommend is Win32 OpenSSL by Shining Light Production, available as a light or full version, both compiled in x86 (32-bit) and x64 (64-bit) modes . You can install any of these versions, as long as your system support them.
OpenSSL is basically a console application, meaning that we’ll use it from the command-line: after the installation process completes, it’s important to check that the installation folder (C:Program FilesOpenSSL-Win64bin for the 64-bit version) has been added to the system PATH (Control Panel > System> Advanced > Environment Variables): if it’s not the case, we strongly recommend to manually add it, so that you can avoid typing the complete path of the executable everytime you’ll need to launch the tool.
Once OpenSSL will be installed, we’ll be able to use it to convert our SSL Certificates in various formats.
From PEM (pem, cer, crt) to PKCS#12 (p12, pfx)
This is the console command that we can use to convert a PEM certificate file (.pem, .cer or .crt extensions), together with its private key (.key extension), in a single PKCS#12 file (.p12 and .pfx extensions):
> openssl pkcs12 —export —in certificate.crt —inkey privatekey.key —out certificate.pfx |
If you also have an intermediate certificates file (for example, CAcert.crt) , you can add it to the «bundle» using the -certfile command parameter in the following way:
> openssl pkcs12 —export —in certificate.crt —inkey privatekey.key —out certificate.pfx —certfile CAcert.cr |
From PKCS#12 to PEM
If you need to «extract» a PEM certificate (.pem, .cer or .crt) and/or its private key (.key)from a single PKCS#12 file (.p12 or .pfx), you need to issue two commands.
The first one is to extract the certificate:
> openssl pkcs12 —in certificate.pfx —nokey —out certificate.crt |
And a second one would be to retrieve the private key:
> openssl pkcs12 —in certificate.pfx —out privatekey.key |
IMPORTANT: the private key obtained with the above command will be in encrypted format: to convert it in RSA format, you’ll need to input a third command:
> openssl rsa —in privatekey.key —out privatekey_rsa.key |
Needless to say, since PKCS#12 is a password-protected format, in order to execute all the above commands you’ll be prompted for the password that has been used when creating the .pfx file.
From DER (.der, cer) to PEM
> openssl x509 —inform der —in certificate.cer —out certificate.pem |
From PEM to DER
> openssl x509 —outform der —in certificate.pem —out certificate.der |
From PEM to PKCS#7 (.p7b, .p7c)
> openssl crl2pkcs7 —nocrl —certfile certificate.pem —out certificate.p7b —certfile CAcert.cer |
From PKCS#7 to PEM
> openssl pkcs7 —print_certs —in certificate.p7b —out certificate.pem |
From PKCS#7 to PFX
> openssl pkcs7 —print_certs —in certificatename.p7b —out certificatename.cer > openssl pkcs12 —export —in certificatename.cer —inkey privateKey.key —out certificatename.pfx —certfile cacert.cer |
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:
- SSL Certificates Converter Tool by SSLShopper.com
- SSL Converter by NameCheap
Both of them work really well and can convert most, if not all, the format detailed above: at the same time, you need to seriously think about the security implications that come with uploading your SSL Certificates (and possibly their private keys) to a third-party service. As trustable and secure those two site have been as of today, we still don’t recommend such move.
Conclusions
That’s it, at least for the time being: we hope that these commands will be helpful to those developers and system administrators who need to convert SSL certificates in the various formats required by their applications.
See you next time!