Понять, что такое SSL-сертификат и как он работает, довольно просто. Но когда дело доходит до установки его на сервер, иногда может показаться, что Вы имеете дело с ракетостроением.
При таком большом количестве форматов SSL-сертификатов, привязанных к конкретным требованиям сервера, Вы скорее запутаетесь и разочаруетесь, чем правильно настроите свой сертификат с самого начала. Но скоро все изменится.
В этом подробном руководстве мы разберем каждый формат SSL-сертификата и расширения файлов сертификатов, а также покажем Вам два способа конвертирования файлов различных типов.
Оглавление
- Форматы файлов сертификатов – основы
- Форматы и расширения файлов SSL-сертификатов
- Преобразование формата SSL
Форматы файлов сертификатов – основы
Давайте начнем с основ. Все SSL-сертификаты являются Сертификаты x.509. Это стандартный формат сертификатов открытых ключей, выраженный на формальном языке под названием Abstract Syntax Notation One. Мы не будем углубляться в структуру X.509; Вы можете прочитать об этом в Wiki. Здесь мы обсуждаем такие форматы сертификатов SSL, как DER, PEM, PKCS#7 и PKCS#12.
Простой способ отличить их – посмотреть на их кодировку.
В PEM и PKCS#7 используется кодировка Base ASCII (American Standard Code for Information Interchange). Это популярный стандарт для файлов, содержащих текст.
В DER и PKCS#12 используется двоичное кодирование – система чисел по основанию 2, состоящая только из нулей и единиц.
Из-за различных форматов и кодировок сертификаты SSL имеют множество расширений файлов.
Форматы и расширения файлов SSL-сертификатов
Давайте внимательно рассмотрим каждый формат и расширения файлов SSL-сертификатов. Вы узнаете, что скрывается за каждой аббревиатурой и в какой системе она используется чаще всего.
Формат DER
DER расшифровывается как Distinguished Encoding Rules, формат двоичного кодирования, редко используемый за пределами Windows. Он содержится в файлах .der или .cer.
Формат PEM
PEM – самый популярный формат SSL-сертификатов, и именно с ним Вы, скорее всего, столкнетесь. Большинство центров сертификации предлагают SSL-сертификаты в формате PEM с различными расширениями файлов сертификатов, такими как .pem, .crt, .cer или .key.
PEM расшифровывается как Privacy-Enhanced Email, и Вы, возможно, задаетесь вопросом, какое отношение имеет электронная почта к сертификату SSL? Короче говоря, PEM не справился со своей основной задачей, но нашел свое применение в качестве формата контейнера.
По сути, файлы PEM – это Base64-кодированные DER-файлы, в которых нули и единицы закодированы в последовательность печатаемых символов. Таким образом, Вы сможете открыть их в любом текстовом редакторе, включая Блокнот.
Один файл .pem может содержать сертификат сервера, промежуточный сертификат и закрытый ключ. В качестве альтернативы Вы можете получить сертификат сервера и промежуточный сертификат в отдельном файле .crt или .cer, а закрытый ключ может находиться в файле .key.
Формат PKCS#7
PKCS расшифровывается как Public Key Cryptography Standards.
PKCS#7 – это многоцелевой формат SSL-сертификатов для распространения зашифрованных данных. В основном он используется на платформах Windows и Java Tomcat.
Сегодня мы используем его преемника CMS (Cryptographic Message Syntax), но, как и в случае с SSL и TLS, старое название стало слишком привычным, чтобы его заменять.
PKSC#7 имеет два расширения файлов: .p7b или p7c. В отличие от PEM, PKCS#7 не может хранить закрытые ключи, только первичные и промежуточные сертификаты.
Формат PKCS#12
PKCS#12 – это еще один стандарт публичной криптографии с повышенной безопасностью. Как и PEM-файл, он может включать всю цепочку SSL-сертификатов и пару ключей в одном файле .pfx. Основное отличие заключается в том, что ПККС#12 – это контейнер, защищенный паролем.
Некоторые серверные системы предлагают Вам ввести пароль во время генерации CSR, и Вы можете использовать его для открытия файлов .pfx.
Преобразование формата SSL
Теперь, когда Вы знаете форматы SSL-сертификатов и их многочисленные расширения, пришло время рассказать о том, чего Вы так долго ждали – как преобразовать SSL-сертификат в любой формат.
Как и в случае с большинством конвертирований файлов, к ним можно подойти по-разному. Самый быстрый вариант – использовать инструмент автоматического преобразования SSL. Все, что Вам нужно сделать, это выбрать желаемую операцию, например, преобразование PEM в PKCS#7, загрузить файлы, а затем нажать кнопку Convert.
В качестве альтернативы Вы можете использовать бесплатную программную библиотеку OpenSSL для преобразования Ваших SSL-файлов. Эта утилита позволяет использовать протокол SSL/TLS практически на любом существующем сервере. Многие платформы и дистрибутивы Linux поставляются с предустановленной утилитой OpenSSL. Для Windows Вам придется получить установочный пакет.
Преобразование X.509 в PEM
Чтобы преобразовать X.509 в PEM, выполните следующую команду в OpenSSL:
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
Преобразование DER в PEM
Двоичное кодирование в Base64 ASCII.
Чтобы преобразовать DER в PEM, выполните следующую команду:
openssl x509 -inform der -in certificatename.der -out certificatename.pem
Преобразование PEM в DER
Base65 ASCII в двоичную кодировку.
Чтобы преобразовать PEM в DER, выполните следующую команду:
openssl x509 -inform der -in certificatename.der -out certificatename.pem
Преобразование PEM в PKCS#7
Файл .p7b не содержит закрытого ключа.
Чтобы преобразовать PEM в PKCS#7, выполните следующую команду:
openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer
Преобразование PKCS#7 в PEM
Чтобы преобразовать PKCS#7 в PEM, выполните следующую команду:
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
Преобразование PKCS#12 в PEM
Файл PKCS#12 защищен паролем.
Чтобы преобразовать PKCS#12 в PEM, выполните следующую команду:
openssl pkcs12 -in certificatename.pfx -out certificatename.pem
Преобразование PKCS7 в PKCS12
Для этого необходимо выполнить два шага. Сначала Вы преобразуете файл P7B в CER, а затем объедините CER и закрытый ключ в 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
Вот, собственно, и все. Теперь Вы можете быстро конвертировать и установить на свой сервер любой тип SSL-файла.
Заключение
Понимание форматов SSL-сертификатов, расширений файлов сертификатов и того, как преобразовать их в нужную Вам конфигурацию, – ценный навык, который поможет Вам без проблем установить SSL-сертификаты в любой системе.
Выбор правильного формата SSL обеспечит надежное шифрование и безопасные соединения на веб-серверах, почтовых клиентах, устройствах VPN и в сетях.
Часто задаваемые вопросы
Расширение файла, используемое для экспортированного файла резервной копии сертификата, зависит от формата и типа сертификата. Наиболее распространенными файлами резервных копий сертификатов являются .p12 и .pfx (системы Windows), .cer и .crt, а также .key для резервного копирования закрытого ключа.
Копировать ссылку
Apache использует формат сертификатов PEM с расширениями файлов .cer .crt и .key.
Копировать ссылку
Чтобы создать SSL-сертификат в формате PEM в Linux, Вы можете воспользоваться инструментарием OpenSSL и его командными строками. После того, как Вы получили SSL-сертификат от ЦС, Вы можете создать файл формата PEM, соединив закрытый ключ и SSL-сертификат в один файл с помощью следующей команды:
cat private.key your_ssl_certificate.crt > your_ssl_certificate.pem
Копировать ссылку
Откройте Ваш файл SSL с помощью любого текстового редактора. Если Вы видите надпись “—–BEGIN CERTIFICATE—–” в начале файла сертификата и “—–END CERTIFICATE—–” в конце файла, значит, сертификат выполнен в формате PEM. Если сертификат имеет формат DER, он не будет содержать этих меток и вместо этого будет представлять собой двоичный файл.
Копировать ссылку
Формат PKCS#12 или PFX содержит сертификаты (S) и закрытый ключ. В этом формате закрытый ключ и соответствующий сертификат хранятся в одном зашифрованном файле.
Копировать ссылку
Мы написали подробное руководство о том, как импортировать и экспортировать файл PFX в Microsoft IIS (Internet Information Services).
Копировать ссылку
Сэкономьте 10% на SSL-сертификатах при заказе сегодня!
Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10