Настройка https
Apache
-
установить порт 443 для прослушки Apache, для этого в
httpd.conf
добавьте строчку Listen 443 (если у вас два сервера на одной машине, то вставьте рядом с "Listen 80" иначе замените порт 80 на 443). -
Вам нужно сгенерировать SSL сертификат
(*.crt, *.pem)
. И подключить его. -
Убрать комментарий со строки
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)).