Pfx to crt and key windows

IIS: SSL (Создаём *.PFX из *.CRT и *.KEY)

Сайт является не обновляемой с 20.07.2019 копией сайта alex-white.ru

Задача: Установить купленный SSL сертификат в IIS.

История. Для приобретения сертификата нужно сформировать CSR запрос. Открываю консоль IIS 8.5 иду в «servers sertificate» и генерирую certificate request, длинной не меньше 2048 bit. У одного из хостеров копирую его в форму генерации SSL сертификата и вижу ошибки. Не принимает запрос, говорит не верный и всё. Пробовал разные длинны ключа. Не очень хотелось генерировать CSR запрос на стороне. Так как не секюрно и проблем с приватным ключом меньше. НО! Пришлось использовать форму хостера (далее расскажу почему была проблема) и там создать CSR запрос и получить приватный ключ. СОХРАНИТЕ ЭТОТ КЛЮЧ в текстовом файлике *.key (пригодится!) Далее валидация домена при помощи кода на почту…. И вот у меня есть сертификат .crt.

Вот тут началось… из-за незнания! Что делать с приватным ключом. Его нужно сохранить в MyDomain.key и беречь! Это залог безопасности того, что будете оберегать SSL ключём! Вот по этому и не хотелось генерировать csr и получать приватный ключ на стороне. Далее необходимо добавить ключь и сертификат в хранилище Windows server. Windows примет сертификат, но без приватного ключа он бесполезен, а импорт возможен в спец формате *.pfx. Это запароленный бинарь с ключём и сертификатом. Так вот как создать этот бинарь.

Создаём *.PFX из *.CRT и *.KEY для импорта сертификата.

Можно сделать несколькими способами. Нам нужна утилита которая сконвертирует по сути текстовые файлы crt и key в бинарь.

openssl.exe pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

1 openssl.exe для Windows можно взять тут. Далее

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

2 pvk2pfx.exe это компонент SDK и чтобы его получит, нужно скачать SDK 10, Установить и мотом использовать pvk2pfx.exe.

Я пошёл по 1му пути. А потом всё просто. Открываем оснастку управления сертификатами

RUN > MMC > FIle> Add Remove Snap -In… и импортируем наш pfx файл в нужное нам хранилище!

А когда сертификат и ключ в хранилище, тогда всё хорошо! Открываем IIS — свойства сайта, и биндим наш SSL на 443 порт. Всё.

А, да.. Причина по которой хостер не принимал сертификат это CSR запрос sha1. Который деприкейтнут! Проверить валидность CSR запроса можно тут. Как создать CSR запрос с SHA2 (SHA256)в Windows и тут

Pfx to crt and key windows

Добрый день уважаемые читатели, в прошлый раз я вам рассказывал, о том, что такое csr запрос и мы его генерировали на IIS сервере, далее нам его нужно было передать в удостоверяющий центр для выпуска основного сертификата сервера, мы выбрали для этих целей сертификат comodo на 3 года от компании Emaro. Все замечательно, сертификат прислали, но есть одно но, когда вы попытаетесь импортировать сертификат в формате crt в IIS сервере, то получите предложение, только на импорт pfx формата, и если его не, то ошибку, что сертификат не содержит закрытого ключа. Давайте смотреть как это решить.

Читайте также:  Debian общая папка для windows

Для чего нужно преобразование сертификатов

Тут ответ, очень простой, все дело в формате работы с ними у каждой программы, будь то IIS или же Apache сервер. Более подробно про виды сертификатов и их назначение, я вам посоветую прочитать вот эту статью.

Давайте я подробнее покажу как выглядит ошибка импортирования сертификата. Во первых когда вы получаете от comodo ваш архив с сертификатами, то там будет два файла:

  • с расширением .ca-bundle
  • с расширением .crt

Попытавшись на сервере IIS произвести их импорт вы увидите вот такую картинку.

И тут нет ничего удивительного, так как это не pfx архив, то в нем нет нужного приватного ключа. Для его получения придется слегка постараться.

Как получить PFX ключ на IIS

нажимаем сочетание клавиш WIN+R и вводим mmc, для вызова оснастки. Я вам уже рассказывал о ее применении и удобстве для системного администратора.

Далее вам необходимо через меню «Файл» добавить новую оснастку.

Находим сертификаты и нажимаем кнопку «Добавить»

В следующем окне выбираем «для учетной записи компьютера»

подтверждаем, что нас интересует локальный компьютер.

Далее находим пункт «Запросы заявок на сертификат», тут вы обнаружите ваш запрос, находите его и через правый клик экспортируете его.

У вас откроется мастер экспорта сертификатов

Далее вы выбираете «Да, экспортировать закрытый ключ»

Ставим галку «Включить по возможности все сертификаты в путь сертификации» и начинаем наш экспорт PFX архива.

Теперь мастер экспорта, просит вас указать два раза нужный вам пароль, для защиты pfx архива.

Через кнопку обзор, указываем место сохранения вашего файла.

Как видим, все успешно выгружено.

Установка OpenSSL для Windows

Теперь нам необходимо наш файл pfx переделать в pem, Pem преобразовать в key:

  • с расширением .ca-bundle
  • с расширением .crt
  • key

Вы получите из этих трех файлов, нужный для импорта pfx архив. Во всем этом нам поможет утилита OpenSSL для Windows.

В итоге у вас будет архив, распакуйте его куда вам будет угодно. Далее выберите вашу папку, зажмите SHIFT и щелкните по ней правым кликом, в открывшемся контекстном меню, выберите пункт «Открыть окно команд».

В результате чего у вас откроется командная строка Windows, но уже в нужной папке содержащей утилиту openssl.exe, она нам и поможет все сделать красиво.

Преобразование PFX в PEM

Теперь приступаем к получению фала в формате Pem. Положите в папку с дистрибутивом файл в формате pfx.

openssl.exe pkcs12 -in api.pyatilistnik.ru.pfx» -nocerts -out key.pem

Вас попросят указать пароль от Pfx архива, вы его задавали при экспорте, после чего нужно придумать пароль на pem файл.

В папке с дистрибутивом OpenSSL вы обнаружите файл key.pem, он нам нужен будет для следующего этапа.

Преобразование PEM в KEY

Теперь получим файл с расширением key, для этого есть вот такая команда:

openssl rsa -in key.pem -out api.pyatilistnik.ru.key

Вас попросят указать пароль от pem ключа.

В итоге я получил закрытый ключ в формате key.

Осталась финишная прямая.

Получаем PFX ключ для импорта в IIS

Теперь когда у вас есть все составляющие, вы можете выполнить последнюю команду для создания PFX файла для IIS сервера.

openssl.exe pkcs12 -export -out api.pyatilistnik.ru.pfx -inkey api.pyatilistnik.ru.key -in api.pyatilistnik.ru.crt -certfile api.pyatilistnik.ru.ca-bundle

Задаем пароль для pfx файла, потребуется при импортировании.

В итоге вы получаете нужный вам файл, который можно загружать на ваш почтовый сервер.

Читайте также:  Не грузиться система windows

Что делать если нет сертификата в запросах заявок на сертификат

Бывают ситуации, что на вашем сервере по каким-то причинам, в папке запросы на сертификат, может не оказаться вашего, в этом случае вам необходимо будет перейти в этой же mmc в раздел «Личное-Сертификаты». Выбираем нужный и делаем экспорт.

Появится мастер экспорта сертификатов.

Обратите внимание, что в pfx выгрузить не получится, но это не страшно, нам подойдет и p7b, но с включенной галкой «Включить по возможности все сертификаты в путь сертификации»

Указываем путь сохраняемого файла.

Видим, что все успешно выполнено.

Преобразование p7b в pem

Попробует такое преобразование.

openssl.exe pkcs7 -in new.pyatilistnik.ru.p7b -inform DER -print_certs -out new.pyatilistnik.ru.pem

В итоге я получил файл new.pyatilistnik.ru.pem

Ну, а дальше уже по инструкции сверху. Если у вас выскочит ошибка, по типу

То наш вариант это .crt в .der и уже .der в .pem

Преобразование CRT в PEM

Кладем так же все в одну папку, файл crt вам должны были прислать вместе с ca-bundle.

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

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

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

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

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

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

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

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

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

PFX в KEY и CRT

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

Как конвертировать SSL-сертификат в нужный формат

Как конвертировать SSL-сертификат в нужный формат

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

Форматы сертификатов

Существует четыре основных формата сертификатов:

PEM — популярный формат используемый Центрами Сертификации для выписки SSL-сертификатов.

Основные расширения этого типа .pem, .crt, .cer, .key. В файлах содержатся строки вида

Сертификаты PEM подходят для установки на веб-серверы nginx, apache2.

DER — это бинарная форма сертификата PEM.

Основные расширения этого типа сертификата .der .cer

Сертификаты DER подходят для установки на серверы Java.

P7B. Файлы P7B кодируются в формате Base64 и имеют расширение .p7b или .p7c.

Читайте также:  Как mac os сохранить ссылку

В файлах содержатся строки вида

Сертификаты 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 можно посредством команды:

Аналогично, для других типов:

PEM в P7B

PEM в PFX

Обращаем ваше внимание, что после выполнения команды, будет запрошена установка пароля ключа.

DER в PEM

P7B в PEM

P7B в PFX

PFX в PEM

Конвертация при помощи онлайн-сервисов

Для конвертации сертификатов самый удобный способ — использование специальных сайтов, например, 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. Работа со скриптом является безопасным решением, т.к сертификаты и ключи сертификата никуда не передаются, а используются непосредственно на вашем сервере.

Для начала работы скрипт необходимо скачать и запустить. Сделать это можно одной командой:

После выполнения команды откроется следующее окно:

Нас интересует пункт 2. Convert certificates

После перехода в пункт 2. появится следующее меню, с выбором нужного типа конвертирования

После выбора преобразования, в данном случае PEM to FPX, скрипт предложит выбрать директорию с сертификатами на том устройстве, где запускается скрипт.

В нашем случае мы их скачали в директорию /home/ivan/crt/

После корректного ввода директории, скрипт отобразит все файлы в этой директории.

Далее нужно ввести имя сертификата, который будем конвертировать, в нашем случае это site.pem

Обращаю ваше внимание, что для корректной конвертации, с PEM в PFX, необходимо вручную объединить файл сертификата, цепочки и ключа в один файл, иначе будет возникать ошибка конвертации.

Сделать это можно простой командой

Данное действие необходимо только для конвертации из PEM в PFX.

Мы рассмотрели пример конвертации PEM в PFX. Этим же путем можно конвертировать сертификаты в другие форматы. Единственное, что вам уже не понадобится шаг с объединением файлов.

Оцените статью