пятница, 4 ноября 2011 г.

Часть 2: Подготовка сертификатов для включения SSL на Веб-сервере



Третий способ - Сертификат созданный в Microsoft Active Directory Certificate Service


Продолжение статьи о том какие есть способы подготовки сертификата для включения SSL на вашем веб-сервере. В этой части я расскажу как создать сертификат в Microsoft Active Directory Certificate Service и импортировать его для включения SSL на веб-сервере. С 1 Частью вы можете ознакомиться здесь "Подготовка сертификатов для включения SSL


Данный способ предполагает запрос необходимых сертификатов через доменный центр сертификации, выгрузку их в формате pfx и подключение к веб-серверу.
Для получения необходимых сертификатов необходимо зайти в доменный центр выдачи сертификатов и начать запрос сертификата пройдя по ссылке «Request a certificate». Будет лучше, если эти действия выполняются с обычной рабочей станции.


Далее требуется выбрать «advanced certificate request». Следующим шагом будет выбор «Create and submit a request to this CA».




Далее, выбираем заранее созданную копию шаблона «Web Server» позволяющего экспортировать закрытые ключи – в нашем случае «Web Server (ARC)».
Поле Name заполняется в соответствии с внешним именем используемого сервера Apache, если такового нет, то – внутреннего. В качестве e-mail указываем адрес электронной почты службы поддержки. Поля City и Country лучше заполнять значениями соответствующими московскому офису Компании, если не требуется иное. Значения полей разделов «Key options» и «Additional options» используем «по умолчанию», за исключением «Store certificate in the local computer certificate store ...».
После подтверждения данных «Submit» нажимаем «Yes» в появившемся окне предупреждения.
Далее устанавливаем сертификат на локальный компьютер, подтверждая своё доверительное отношение к центру сертификации.
Экспорт инфраструктуры PKCS12


Экспорт ключей и сертификатов осуществляется в Microsoft Management Console, где нужно добавить оснастку Certificates управляющую аккаунтом локального компьютера (Computer account-Local computer)
В ветке Personal - > Certificates дерева каталогов этой оснастки появится установленный ранее сертификат. Используя контекстное меню этого сертификата нужно выбрать All Tasks - > Export, запустив Certificate Export Wizard.

В следующем окне мастера экспортирования сертификатов выбираем пункт «Yes, export the private key».





Затем устанавливаем нужные галочки в соответствии со снимком экрана.

Следующее окно мастера позволяет установить дополнительную защиту для закрытого ключа, к сожалению здесь отсутствует возможность её отключения и мы сделаем это позже, при экспорте openssl, поэтому можно задать любой пароль, пустой пароль можно задавать если сертификаты не будут использоваться в tomcat.

Остаётся ввести путь к имени pfx-файла, который будет содержать инфраструктуру ключей pkcs12.

Импорт PKCS12 в OpenSSL

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

Следующая команда импортирует сертификат из файла vcs1-g.pfx в файл vcs1-g.crt используя пароль 123 заданный в мастере экспортирования.

 openssl pkcs12 -passin pass:123 -in vcs1-g.pfx -out vcs1-g.crt -clcerts -nokeys  

Импорт закрытого ключа

Следующая последовательность команд импортирует закрытый ключ в файл vcs1-g.key, при этом отключается его парольная защита, с которой невозможен автоматический запуск службы Apache и многих других.

 openssl pkcs12 -passin pass:123 -passout pass:anypw -in vcs1-g.pfx -nocerts | openssl rsa -passin pass:anypw -out vcs1-g.key  
Теперь можно подключить к вашему веб-серверу полученный сертификат и приватный ключ.


Для справки: Как собрать pfx-файл средствами openssl:
 openssl pkcs12 -export -in certificate.crt -inkey certificate.key -out certificate.pfx -name "Test Certificate"