Конвертування SSL-сертифікатів: пам'ятка адміну


Доволі часто для успішної установки SSL-сертифікатів на різних платформах та пристроях потрібно перетворити їх на інший формат. Так, Windows-сервери використовують, зазвичай, PFX-формат, а Apache потрібні PEM-файли, мають розширення .crt чи .cer. Спробуємо розібратися, які формати бувають і як конвертувати їх з одного формату до іншого.

Формати SSL-сертифікатів

Таблиця 1 містить опис часто використовуваних форматів SSL сертифікатів.

Таблиця 1. Формати SSL-сертифікатів

ФорматОпис
PEMНайпоширеніший формат сертифікату. Файли у такому форматі мають розширення .pem, .crt, .cer та .key (файл приватного ключа). Самі собою файли є звичайними ASCII-файлами, закодованими у форматі Base64. При відкритті такого сертифіката в текстовому редакторі ви бачите рядок ---BEGIN CERTIFICATE---, після чого слідує закодований сертифікат, а потім – рядок ---END CERTIFICATE---.

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

DERБінарний тип сертифіката – на відміну від PEM, де сертифікат зберігається в файлі ASCII. Файли сертифікатів у цьому форматі часто мають розширення .cer, але можна зустріти і розширення .der. Якщо перед вами файл із розширенням .cer, то для обчислення його формату потрібно відкрити його в текстовому редакторі. Якщо ви побачите теги початку та закінчення сертифіката (BEGIN/END), це формат PEM. Формат DER використовується зазвичай на Java-платформах.
PKCS # 7/P7B Файл сертифіката в цьому форматі зберігаються у форматі Base64 ASCII і мають розширення файлу .p7b або .p7c. У файлах знаходяться теги початку та закінчення сертифіката - "--BEGIN PKCS7 -" і ""--END PKCS7 -". Цей формат підтримується Windows та Java Tomcat.
PFXБінарний формат, при використанні цього формату в зашифрованому файлі зберігаються ваш особистий сертифікат сервера, проміжні сертифікати центру сертифікації, а також закритий ключ. PFX файли зазвичай мають розширення .pfx або .p12. Зазвичай використовується у Windows для імпорту та експорту файлів SSL сертифікатів та приватного ключа.

Конвертування форматів сертифікатів

Таблиця 2 містить команди конвертування SSL-сертифікатів з одного формату в інший.

Таблиця 2. Команди конвертування

НапрямокКоманда
З 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 у PFXopenssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
З DER у PEMopenssl x509 -inform der -in certificate.cer -out certificate.pem
З P7B у PEMopenssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
З P7B у PFXopenssl pkcs7 -print_certs -in certificate.p7b -out certificate.ceropenssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx - certfile CACert.cer
З PFX у PEMopenssl pkcs12 -in certificate.pfx -out certificate.cer -nodes