- IIS: SSL (Создаём *.PFX из *.CRT и *.KEY)
- Сайт является не обновляемой с 20.07.2019 копией сайта alex-white.ru
- Pfx to crt and key windows
- Для чего нужно преобразование сертификатов
- Как получить PFX ключ на IIS
- Установка OpenSSL для Windows
- Преобразование PFX в PEM
- Преобразование PEM в KEY
- Получаем PFX ключ для импорта в IIS
- Что делать если нет сертификата в запросах заявок на сертификат
- Преобразование p7b в pem
- Преобразование CRT в PEM
- Заметки: Конвертируем PFX в KEY и CRT
- Конвертируем PFX
- Получаем сертификат
- PFX в KEY и CRT
- Как конвертировать SSL-сертификат в нужный формат
- Как конвертировать SSL-сертификат в нужный формат
- Форматы сертификатов
- Способы конвертации
- Конвертация SSl сертификатов посредством OpenSSL
- Конвертация при помощи онлайн-сервисов
- Конвертация скриптом openssl-ToolKit
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 формата, и если его не, то ошибку, что сертификат не содержит закрытого ключа. Давайте смотреть как это решить.
Для чего нужно преобразование сертификатов
Тут ответ, очень простой, все дело в формате работы с ними у каждой программы, будь то 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 файла, потребуется при импортировании.
В итоге вы получаете нужный вам файл, который можно загружать на ваш почтовый сервер.
Что делать если нет сертификата в запросах заявок на сертификат
Бывают ситуации, что на вашем сервере по каким-то причинам, в папке запросы на сертификат, может не оказаться вашего, в этом случае вам необходимо будет перейти в этой же 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.
В файлах содержатся строки вида
Сертификаты 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. Этим же путем можно конвертировать сертификаты в другие форматы. Единственное, что вам уже не понадобится шаг с объединением файлов.