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

Настройка https

Apache

  1. установить порт 443 для прослушки Apache, для этого в httpd.conf добавьте строчку Listen 443 (если у вас два сервера на одной машине, то вставьте рядом с "Listen 80" иначе замените порт 80 на 443).

  2. Вам нужно сгенерировать SSL сертификат (*.crt, *.pem). И подключить его.

  3. Убрать комментарий со строки LoadModule ssl_module modules/mod_ssl.so в httpd.conf

Пример настройки двух серверов (локального и интернет портала) на одной машине:

<VirtualHost *:80>
   ServerAdmin webmaster@dummy-host.test.ru
   DocumentRoot "C:\webmfc\www"
   ServerName 192.168.1.39
   ServerAlias 192.168.1.39
   ErrorLog "logs/dummy-host.test.ru-error.log"
   CustomLog "logs/dummy-host.test.ru-access.log" common
</VirtualHost>

NameVirtualHost *:443

<VirtualHost *:443>
   ServerAdmin webmaster@dummy-host.test.ru
       SSLEngine On
#включить поддержку SSL
       SSLCertificateFile "C:\server.crt"
#путь к файлу
       SSLCertificateKeyFile "C:\server.pem"
#сертификата
   DocumentRoot "C:\webmfc\www_https"
   ServerName 192.168.1.39
   ServerAlias 192.168.1.39
   ErrorLog "logs/dummy-host.test.ru-error.log"
   CustomLog "logs/dummy-host.test.ru-access.log" common
</VirtualHost>

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

  • Скачиваем с сайта последнюю версию OpenSSL, и устанавливаем ее на жесткий диск.(http://www.openssl.org/related/binaries.html)
  • Далее, для того чтобы созданные ключи, запросы на сертификат, сертификаты и прочее не были перемешаны в общей куче, я рекомендую создать для себя рабочий каталог  например c:/mySSL, со следующими подкаталогами:

key - каталог с private-ключами csr - каталог запросов на сертификат (Certificate Signing Request) cer - каталог сертификатов, для публичного пользования (Certificate).

  • Структура каталогов создана. Осталось настроить OpenSSL. Для этого, в рабочем каталоге (C:\mySSL) надо разместить конфигурационный файл openssl.conf, после чего можно приступать к созданию сертификатов.

Для того, чтобы openssl не ругалась на отсутствующий файл конфигурации "Unable to load config info from /usr/local/ssl/openssl.cnf": устанавливаем переменную окружения OPENSSL_CONF

cd c:\OpenSSL-Win32\bin\
c:\OpenSSL-Win32\bin
>set OPENSSL_CONF=
C:\mySSL\
openssl.cnf
  • получим private-ключ. Это можно сделать выполнив команду:
c:\OpenSSL-Win32\bin
>openssl genrsa -des3 -out C:\mySSL\key\ca.key 1024
  • Делаем ключ, не запрашивающий пароль
c:\OpenSSL-Win32\bin
>openssl rsa -in C:\mySSL\key\ca.key -out C:\mySSL\cer\server.pem
  • После того как приватный ключ сгенерирован может быть сгенерирован запрос на подпись сертификатов (CSR). Во время генерации CSR вас попросят ввести некоторое количество информации. Один из вопросов будет Common Name (eg, YOUR name):

Важно чтобы это поле содержало полностью квалифицированное имя домена вашего сервера. Если вебсайт имеет адрес www.domain.com - то вы должны написать именно www.domain.com. Команда для генерации CSR выглядит так.

c:\OpenSSL-Win32\bin
>openssl  req -new -key C:\mySSL\key\ca.key  -out C:\mySSL\csr\server.csr
  • Генерация самоподписанного сертификата. Для того чтобы сгенерировать сертификат годный в течение 60 дней введите следующую команду
c:\OpenSSL-Win32\bin
>openssl x509 -req -days 60  -in C:\mySSL\csr\server.csr -signkey C:\mySSL\key\ca.key -out C:\mySSL\cer\server.crt

Теперь в папке C:\mySSL\cer\ лежат файлы server.crt и server.pem их и надо использовать для настройки сервера на работу с использованием SSL. (путь куда положить файлы указывается в httpd.conf или vhosts.conf (настройки Apache)).