Заметки: Конвертируем PFX в KEY и CRT

Конвертация PFX в KEY и CRT может потребоваться в том случае, если вы используете какое-либо unix/linux-приложение с поддержкой доступа по SSL. Чаще всего это веб-приложения. В противовес этому подходу Windows использует сертификаты в формате .pfx для хранения пары закрытый-открытый ключи враз, разумеется с защитой паролем при попытке экспорта.

Регулярно приходится работать с сертификатами и процесс конвертации PFX (PKCS12) в KEY и CRT (PEM) встречается с завидной регулярностью. Которой, тем не менее, не достаточно, чтобы запомнить все нужные команды до автоматизма. Приходится постоянно лезть в маны или в гугл за нужными ключами. Уже давно пришло время написать статью-шпаргалку по этой теме. Собственно, вот и она.


Если вам интересна тематика Debian и связанных с ним приложений, рекомендую обратиться к тегу Debian на моем блоге.


Конвертируем PFX

SSL-сертификаты на данный момент распространены повсеместно и работать с ними приходится постоянно. В статье я рассмотрю лишь базовые сценарии, которые встречаются наиболее часто.

Получаем сертификат

Если у вас все ещё нет сертификата от публичного ЦС, тогда мы идем к вам то самое время его получить. Обычно для этого сначала нужно сделать CSR-запрос. Следующий шаг — отправить его в ЦС и пройти проверку домена/организации (вам отправят письмо с кодом подтверждения на какой-либо админский адрес, либо позвонят на корпоративный номер телефона в зависимости от типа проверки).

Примечание: у меня на блоге вы сможете найти множество статей по сертификатам с помощью тега SSL certificate.

Как только все формальности пройдены, на почту вы получите архив с нужным вам сертификатом в формате .crt (и всей цепочкой промежуточных на всякий случай).

PFX в KEY и CRT

Воспользуемся всем знакомой утилитой openssl, чтобы вытащить открытую часть pfx-сертификата 1:

Нужно будет ввести пароль, который вы указывали при экспорте .pfx-сертификата. Теперь попробуем извлечь закрытую часть сертификата, поместив её в отдельный запароленный файл:

После выполнения команды вам придется ввести не только пароль, который использовался для экспорта .pfx-сертификата, но и новый пароль, необходимый для защиты .key-файла. Далее вы вполне можете использовать все полученные ранее файлы сертификата для настройки какого-либо сервиса, использующего SSL. Например Apache (см. секцию ниже в качестве примера).

Закрытый ключ сертификата с парольной защитой не всегда удобно использовать на реальном окружении. Например тот же Apache будет спрашивать пароль при каждом рестарте сервиса, что будет требовать человеческого участия. Обойти проблему можно, сняв пароль с закрытого ключа:

Будьте крайне осторожны в этом случае, чтобы не допустить компрометацию закрытого ключа. Установите на файл соответствующие права, чтобы никто кроме вас не имел к нему доступ:

Ну а теперь рассмотрим обратную процедуру.

KEY и CRT в PFX

Сшивание двух файлов ключей — открытого и закрытого — может потребоваться для сервисов на базе Windows, которые привыкли видеть сертификаты в формате .pfx. Также в некоторых случаях хранить пары ключей удобнее именно в формате pfx.

Примечание: если вы генерировали csr-запрос на стороне сервера Windows, то вам придется его завершить, подсунув файл .crt, который вам позже пришлет ваш ЦС. В итоге экспортировать сертификат из оснастки MMC вы сможете именно в формате .pfx. Иной вариант — если csr создавался с помощью утилиты openssl. В этом случае вероятно у вас уже будут crt и key, которые потребуется собрать в pfx.

Собрать crt и key в pfx можно командой:

Как только нажмете Enter, нужно будет ввести пароль от файла закрытого ключа (если этот пароль есть), а также пароль для экспорта в pfx. После этого смело используйте файл на серверах Windows, но не забудьте при импорте отметить ключ экспортируемым (иначе экспортировать ключ потом не получится).

comments powered by HyperComments
Яндекс.Метрика