Перейти к содержанию

25.10.2011

SSL cертификат для Apache в Microsoft Certification Authority

В случае, если у организации поднят и настроен локальный центр сертификации CA (Инфраструктура открытых ключей, англ. Public Key Infrastructure, PKI), можно использовать его для выпуска SSL сертификатов для локальных веб серверов на базе Apache.

Порядок действий:

  1. Создать запрос SSL сертификата;
  2. Отправить запрос на сервер CA;
  3. Конвертировать SSL сертификат в формат понятный apache;
  4. Прописать полученный SSL сертификат в apache.

Создаем запрос SSL сертификата

Создаем ключи (server.key) и запрос SSL сертификата для центра сертификации (request.der)

openssl req -new -inform DER -sha1 -newkey rsa:2048 -nodes -keyout server.key -out request.der

Отвечаем на задаваемые вопросы:

root@www ~/ssl # openssl req -new -inform DER -sha1 -newkey rsa:2048 -nodes -keyout server.key -out request.der
Generating a 2048 bit RSA private key
..........................................+++
.............................................+++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []: RU
State or Province Name (full name) []: Default city
Locality Name (eg, city) []: Moskow
Organization Name (eg, company) []: Example Inc.
Organizational Unit Name (eg, section) []: IT
Common Name (eg, YOUR name) []: www.example.com
Email Address []: webmaster@example.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Самое важное поле: Common Name. Нужно указать FQDN имя сервера, например: www.example.com. Также можно запросить Wildcard SSL Certificate: *.example.com, который будет подходить для любого поддомена в зоне .example.com, но не для example.com.

Примечание: Можно добавить ключ -text, тогда в файл request.der будет добавлена текстовая информация  о содержимом запроса.

Запрашиваем сертификат в локальном CA

В браузере (желательно IE, под остальными могут возникнуть трудности, например, у меня в Firefox просто не было некоторых пунктов), от имени пользователя имеющего право выдавать сертификаты по шаблону Web Server (по умолчанию, это только пользователи в группах Domain Admins и Enterprise Admins) идем на сайт Microsoft Active Directory Certificate Services по адресу http://<CA>/certsrv/, где выбираем:

  • «Request a certificate»
  • затем «Advanced certificate request»
  • и наконец «Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file».

В поле «Saved Request» вставляем содержимое файла request.der, в выпадающем списке «Certificate Template» выбираем Web Server.

Submit a Certificate Request or Renewal Request

Сохраняем полученный SSL сертификат в формате DER.

Конвертируем SSL сертификат

Конвертируем при помощи openssl:

openssl x509 -in certnew.cer -inform DER -out server.pem

и в результате получаем файл server.pem.

Указываем SSL сертификат в apache

В случае Debian, в файл /etc/apache2/sites-available/default-ssl  нужно дописать две строки:

SSLCertificateFile    /etc/ssl/private/server.pem
SSLCertificateKeyFile /etc/ssl/private/server.key

Не забудьте ограничить доступ на чтение файла с секретной частью ключа.

Включаем SSL в apache

В зависимости от текущих настроек apache, может понадобится включить модуль mod_ssl, разрешить сайт default-ssl и в конце перезапустить apache.

a2enmod ssl
a2ensite default-ssl
service apache2 reload

Доверие браузера к вашему Certification Authority

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

Если распространение сертификата центра сертификации (Certification Authority) групповыми политиками невозможно, то один из вариантов, это зайти браузером на сайт локального центра сертификации, и установить его сертификат:

  • зайдите на http://<CA>/certsrv/;
  • кликните на Download a CA certificate, certificate chain, or CRL;
  • и затем на Install CA certificate.

Поделитесь своими мыслями, оставьте комментарий.

(required)
(required)

Внимание: HTML допускается. Ваш e-mail никогда не будет опубликован.

Подписка на комментарии

Captcha *