SSL cертификат для Apache в Microsoft Certification Authority
В случае, если у организации поднят и настроен локальный центр сертификации CA (Инфраструктура открытых ключей, англ. Public Key Infrastructure, PKI), можно использовать его для выпуска SSL сертификатов для локальных веб серверов на базе Apache.
Порядок действий:
- Создать запрос SSL сертификата;
- Отправить запрос на сервер CA;
- Конвертировать SSL сертификат в формат понятный apache;
- Прописать полученный 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.
Сохраняем полученный 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.