Формат SSL сертифікату: як конвертувати сертифікат в .pem, .cer, .crt, .der, pkcs або pfx?

Обзор форматов сертификатов SSL

SSL (англ. Secure sockets layer - рівень захищених cокетов) - криптографічний протокол, який має на увазі більш безпечний зв'язок. Він використовує асиметричну криптографію для аутентифікації ключів обміну, симетричне шифрування для збереження конфіденційності, коди аутентифікації повідомлень для цілісності повідомлень. Протокол широко використовувався для обміну миттєвими повідомленнями і передачі голосу через IP (англ. Voice over IP - VoIP) в таких додатках, як електронна пошта, Інтернет-факс та ін. У 2014 році уряд США повідомило про уразливість в поточній версії протоколу. SSL повинен бути виключений з роботи на користь TLS (див. CVE-2014-3566).

SSL спочатку розроблений компанією Netscape Communications для додавання протоколу HTTPS в свій веб-браузер Netscape Navigator. Згодом на підставі протоколу SSL 3.0 був розроблений і прийнятий стандарт RFC, що отримав ім'я TLS.

Для успішної установки і функціонування SSL сертифікатів на різних платформах і пристроях, нерідко їх необхідно надати в різних форматах. Наприклад, сервери Windows використовують PFX файли, для Apache серверів необхідні PEM файли з розширенням .crt або .cer. У цій статті ми допоможемо вам розібратися в наступних питаннях:

  • Які бувають формати SSL сертифікатів?
  • Чим вони відрізняються?
  • Як конвертувати 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 сертифікатів і вашого приватного ключа.

Конвертація 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 сертифікатів з одного формату в інший. Наприклад, ми можемо порадити SSL конвертер від SSLShopper .

Використовуйте цей SSL конвертер для перетворення SSL-сертифікатів різних форматів, таких як PEM, DER, P7B і PFX. Щоб використовувати SSL-конвертер, просто виберіть файл сертифіката та його поточний тип (він визначається за форматом розширення), потім виберіть формат, в який Вам необхідно перетворити SSL сертифікат і натисніть кнопку "Convert Certificate".

Зверніть увагу, що в залежності від того, в який формат вам потрібно конвертувати SSL сертифікат, від вас будуть потрібні різні вихідні файли.

Онлайн конвертер SSL сертифікатів

Також існують онлайн програми для конвертації SSL сертифікатів з одного формату в інший. Наприклад, ми можемо порадити SSL конвертер від SSLShopper.

Використовуйте цей SSL конвертер для перетворення SSL-сертифікатів різних форматів, таких як PEM, DER, P7B і PFX. Щоб використовувати SSL-конвертер, просто виберіть файл сертифіката та його поточний тип (він визначається за форматом розширення), потім виберіть формат, в який Вам необхідно перетворити SSL сертифікат і натисніть кнопку "Convert Certificate".

Зверніть увагу, що в залежності від того, в який формат вам потрібно конвертувати SSL сертифікат, від вас будуть потрібні різні вихідні файли.

Конвертація PEM в DER

Обзор форматов сертификатов SSL

Для конвертації стандартного сертифіката в форматі PEM в бінарний формат DER, потрібно тільки файл SSL сертифікату. Зазвичай, ви його отримуєте в архіві разом з проміжними сертифікатами. Як правило, в його назві зазначено ім'я вашого домену.

Конвертація PEM в P7B / PKCS # 7

Обзор форматов сертификатов SSL

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

Конвертація PEM в PFX / PKCS # 12

Обзор форматов сертификатов SSL

Зверніть увагу, що для конвертації стандартного формату SSL сертифікату необхідно додати ще один файл - ваш приватний ключ. Приватний ключ - це конфіденційна інформація, яка повинна бути тільки у вас. Тому центри сертифікації не висилати його місці з файлами вашого сертифіката.

Приватний ключ створюється в момент генерації CSR запиту. Якщо ви генеруєте CSR у себе на сервері, на ньому ж повинен автоматично зберегтися ключ. Якщо ви створюєте CSR запит в спеціальному інструменті на нашому сайті (на сторінці за посиланням або під час заповнення технічних даних), ключ показується вам в кінці генерації CSR (або введення технічних даних), але не зберігається в нашій базі даних. Тому важливо, щоб ви самостійно зберегли приватний ключ.

Конвертація PFX / PKCS # 12 в PEM

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

Via emaro-ssl.ru & wiki