Apache под windows установка сертификата

DataLife Engine — Softnews Media Group

Настройка HTTPS в Apache на Windows 8.1

Автор: genadie от 4-02-2014, 20:41, посмотрело: 60145

Представленная статья написана, как продолжение Установка веб-сервера Apache + PHP + MySQL на Windows 8.1 , соответственно все, приведенные там настройки остаются в силе, мы лишь дополним наш веб-сервер защищенным HTTPS-соединением и рассмотрим вопрос как создать самоподписанный SSL-сертификат.
Для начала переходим в C:\server\Apache24\conf и открываем для редактирования файл конфигурации Apache – «httpd.conf»:

Под строкой Listen 172.16.1.3:80

Находим и раскоментируем строчку:

Далее идем в конец фала и видим там блок:

Приводим его к следующему виду:

Сохраните изменения и закройте файл «httpd.conf»

Теперь откройте файл «C:\server\Apache24\conf\extra\httpd-vhosts.conf» и произведите в нем следующие изменения:

Коментируем созданный нами в прошлой статье блок:

И вставляем следующее:

Так же добавим блок для перенаправления, если кто-то придёт на сайт по протоколу HTTP:

В итоге должно получится как-то так:

ServerName local.malwselennaia.ru
Redirect permanent / https://local.malwselennaia.ru

#
# DocumentRoot «C:/sait/local.malwselennaia.ru/www»
# ServerName local.malwselennaia.ru
# ErrorLog «C:/sait/local.malwselennaia.ru/error.log»
# CustomLog «C:/sait/local.malwselennaia.ru/access.log» common
#

SSLEngine On
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key
DocumentRoot «C:/sait/local.malwselennaia.ru/www»
ServerName local.malwselennaia.ru
ErrorLog «C:/sait/local.malwselennaia.ru/error.log»
CustomLog «C:/sait/local.malwselennaia.ru/access.log» common

Сохраните изменения и закройте файл «httpd-vhosts.conf»

В данном примере «local.malwselennaia.ru»- имя моего сайта, у себя вставляете свои данные.

DocumentRoot «C:/sait/local.malwselennaia.ru/www»- директория, в которой находится скрипт сайта.

ServerName local.malwselennaia.ru- имя, которое вводим в браузере.

SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key-директория, где лежит сертификат.

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

Копируем файлик openssl.cnf из каталога C:\server\Apache24\conf в каталог C:\server\Apache24\bin .

Создаем сертификат для нашего сервера.

Для этого заходим в каталог C:\server\Apache24\bin и открываем командную строку от имени администратора.

Читайте также:  What is windows installer patchcache

Теперь вводим следующее:

Видим ответ с предложением ввести пароль:

Вводим свой пароль и видим предложение ввести пароль еще раз:

Теперь необходимо ввести название страны (2 буквы кода):

Далее нужно ввести Штат или Провинция (необязательный параметр, я оставлю пустым):

Теперь название местности (оставлю пусто):

Название организации (опять пропущу):

Название Подразделения (оставлю пусто):

Дошли до: «Common Name (e.g. server FQDN or YOUR name) []:» Сдесь нужно прописать свое доменное имя (название сайта, в моем случае это local.malwselennaia.ru):

Вводим почту админа:

Вводим необязательное название компании (оставлю пусто):

После этого в каталоге C:\server\Apache24\bin образуется файлик my-server.csr

Далее последовательно даем команды:

Видим ответ с предложением ввести пароль:

Вводим пароль, получаем ответ:

Создаем каталог ssl в каталоге C:\server\Apache24\conf и перемещаем туда файлики my-server.key и my-server.cert из каталога C:\server\Apache24\bin .

Вот собственно и все, проверяем результат:

Вводим в браузере:

Получаем вот такой ответ:

Жмем «продолжить открытие веб-сайта»:

Как видим в адресной строке браузера , нас перенаправили уже по протоколу https на страницу входа.

Установка сертификата от Windows Server CA на веб-сервер Apache

Рассмотрим пример установки цифрового сертификата X509 на веб-сервер Apache, выданного локальным корневым Центром сертификации, работающим на Windows Server 2008. Пошагово решение задачи состоит из нескольких последовательных шагов:

  • Генерация запроса на сертификат средствами OpenSSL к ЦС Windows;
  • Получение от ЦС файла сертификата (.cer) в формате DER X509
  • Конвертация полученного сертификата в .pem и прикручивание оного к веб-серверу Apache

Для того чтобы создать запрос к ЦС Windows нам понадобиться OpenSSL, а именно конкретно 3 файла из его состава — openssl.exe , ssleay32.dll , libeay32.dll . Сложим их в один каталог, например в каталог \Documents в профиле пользователя. Далее создаем закрытый ключ:

После этого в нашем каталоге появиться файл с ключом. Далее с использованием этого файла мы подготовим запрос к ЦС. Но для этого подготовим конфигурационный файл для OpenSSL, чтобы он не задавал нам лишних вопросов. Итак создаем текстовый файл my_openssl.cnf со следующим содержимым:

Как вы понимаете, в этом файле мы указываем параметры, которые нужны для идентификации запроса сертификата в ЦС, т.е. указываем имя сервера которому требуется сертификат, имя организации и т.п..

Читайте также:  С windows del bat

Далее создаем запрос на сертификат с учётом подготовленных ранее параметров:

Полученный файл запроса APACHE-SERVER.req загружаем в центр сертификации Windows Server, в ЦС выдаем сертификат на загруженный запрос. Выгружаем из ЦС новый сертификат в файл APACHE-SERVER.cer . Теперь наша задача — конвертировать наш бинарный DER сертификат в формат, понятный для Apache, и делаем мы это так:

Всё, что нам нужно — готово, а именно файлы key и pem . Делаем соответствующие изменения в файле конфигурации сервера Apache — httpd.conf — вписываем туда ссылки на наш сертификат:

После чего перезапускаем сервис Apache2, и если всё сделали правильно, то при обращении на веб-узел увидим, что Apache использует наш сертификат.

Apache под windows установка сертификата

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

Сертификаты выдаются сертификационными центрами и представляют собой файл сертификата, выпущенного для определенного доменного имени, и приватного ключа.

Также необходимы промежуточные сертификаты в случае если файлы, упомянутые ранее, были сгенерированы не корневым центром сертификации.

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

SSL сертификаты чаще всего устанавливаются на веб- и почтовые сервера. В рамках данного материала будет рассмотрена установка сертификата на веб-сервер Apache для обеспечения возможности работы сайта по защищенному протоколу https

Как установить ssl сертификат на сервер Apache:

1. Чтобы установить на сервер сертификат необходимо подключиться к нему по протоколу SSH от имени пользователя root;

2. Файлы сертификатов могут размещаться в любом каталоге, часто их размещают в /etc/apache2/ssl.

Переходим в /etc/apache2 и создаем директорию

3.Создаем файлы сертификата, приватного ключа и промежуточного сертификата и помещаем в них содержимое аналогичных файлов, полученных от центра сертификации (или сгенерированных на сервере)

Содержимое сертификата выглядит примерно следующим образом:

——BEGIN CERTIFICATE——
MIIFEDCCA/igAwIBAgISA+1wB7/BBdk7NHpvkfWRpapqMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzAxMjkwNjEwMDBaFw0x
NzA0MjkwNjEwMDBaMCExHzAdBgNVBAMTFnJlbW90ZS10ZWNoLXN1cHBvcnQucnUw
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChoT+eOaGZXNtkoPLe6BNJ
d2gQqeTP1n8n2GRcJE7gKgduglfs1YfvE3CtoMYEm6veKKvVKE8AGox0USUPuM8S
——END CERTIFICATE——

SHIFT+INS чтобы вставить содержимое
F2 чтобы сохранить
Выходим нажимая ESC

Читайте также:  Windows file and fax

Аналогичным образом создаем файл приватного ключа

Пример содержимого файла:
——BEGIN PRIVATE KEY——
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQChoT+eOaGZXNtk
oPLe6BNJd2gQqeTP1n8n2GRcJE7gKgduglfs1YfvE3CtoMYEm6veKKvVKE8AGox0
USUPuM8SRDeo4kJ7tAaQC1Ss8B6Dj57EKTJ+Jw+m+SzJEyfs3inAmrwKhR1KjRUe
SzsEgsralTZSK1uvoxPaKTsqPshs5oK3ZeTwzIR+keHbQUkxNyhKEM4j+dOFrykb
NLkJDABDzknmjodTr6fEgA5D99AAj/aWxaaOch8NxLQS60EasgdGFhIBZ/xACNdM
zIP3mn5WValj5yBOeX61f2qy0jy8RcwHMJbiA3IEw6oVVi+iTO6kgHrwhULCWJ8T
——END PRIVATE KEY——

Добавляем промежуточный сертификат, подтверждающий корректность цепочки

Пример промежуточного сертификата:
——BEGIN CERTIFICATE——
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
——END CERTIFICATE——

4. Что того чтобы работа веб-сервера по защищенному соединению необходимо, что был включен модуль apache2 SSL

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

Если вывод не пустой — модуль активирован. Если в выводе ничего нет включаем модуль:

После выполнения команды появляется сообщение «Enabling module ssl».

5. Переходим в каталог, в котором размещаются конфигурационные файлы сайтов — cd /etc/apache2/sites-available и находим конфигурационный файл сайта, подключение к которому по https настраиваем — в данном случае — example.com.conf

6. Создаем копию конфигурационного файла сайта и вносим в него коррективы

cp example.com.conf ssl-example.com.conf

6.1 В строке VirtualHost указываем порт по которому будет осуществляться подключение при работе по https — меняем 80 (значение для http) на 443

6.2 В качестве ServerName указываем имя сайта example.com

6.3 Приводим файл к следующему виду, указывая в нем полные пути к сертификату, приватному ключу и сертификату промежуточному SSLCertificateFile SSLCertificateKeyFile и SSLCACertificateFile

ServerAdmin info@example.com
ServerSignature On
ServerName example.com
AddDefaultCharset utf-8
CustomLog /var/log/apache2/logs/example.com/access.log combined
LogLevel error
SuexecUserGroup user user
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/example.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/example.com.key
SSLCACertificateFile /etc/apache2/ssl/intermediate.crt
SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2 SSLCompression off

SSLHonorCipherOrder on

DocumentRoot «/home/admin/example.com/www/»
……

7. Активируем сайт:

Фактически при выполнении команды создается символьная ссылка /etc/apache2/sites-availible/ssl-example.com.conf /etc/apache2/sites-enabled/

8. Перезапускаем веб-сервер для того чтобы изменения вступили в силу:

или (если сервис работает под runit)

9. Проверяем статус

Если никаких ошибок не наблюдается — можно проверять доступность сайта по https. Также следует проверить корректность установки сертификата при помощи одного из онлайн-сервисов, предоставляющих подобную возможность.

На этом с вопросом о том, как установить SSL сертификат на сервер все.

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