Настройка HTTPS
Создание саподписанного SSL сертификата
Делаем следующее:
# cd /etc/ssl # mkdir db # mkdir ca # mkdir clients # touch /etc/ssl/db/index.txt # echo "01" > /etc/ssl/db/serial
Создаем скрипт для создания нашего самоподписанного доверенного сертификата (CA) /etc/ssl/make_ca.sh :
#!/bin/sh openssl req -new -newkey rsa:4096 -nodes -keyout ./ca/ca.key -x509 -days 3650 \ -subj /C=RU/ST=Russia/L=Vologda/O=MIAC/OU=MEDIC/CN=volmed.org.ru/emailAddress=misk@volmed.org.ru \ -out ./ca/ca.crt
Где:
rsa - длина ключа (4096),
-days - Период действия сертификата, в нашем случае 10 лет
/CN - адрес нашего сервера, например volmed.org.ru,
/O - Имя организации, например MIAC,
/OU - Имя подразделения, например MEDIC,
Остальное и так понятно.
Запускаем скрипт make_ca.sh. Какое-то время он будет возиться с генерацией секретного ключа длиной в 4096 бит, на слабой машине это займет время... можете уменьшить длину ключа до 1024 или 2048 бит, если очень не терпится все поскорее попробовать. В итоге мы получим два файла в каталоге /etc/ssl/ca:
ca.crt - это наш самоподписанным доверенный сертификат, и
ca.key - его секретный ключ.
Создание файла конфигурации
Создаем файл /etc/httpd/conf/vhost.d/server.conf
NameVirtualHost *:443 <IfDefine HAVE_SSL> <IfModule !mod_ssl.c> LoadModule ssl_module modules/mod_ssl.so </IfModule> </IfDefine> #Listen 443 <VirtualHost *:443> ServerName volmed.org.ru ServerAlias volmed.org.ru #Alias "/update" "/var/www/html/new" DocumentRoot "/var/www/html/new" ErrorLog /var/log/httpd/update-error.log TransferLog /var/log/httpd/update-access.log CustomLog /var/log/httpd/update-access_log common <IfModule ssl_module> SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLProtocol all -SSLv2 SSLEngine on SSLCertificateFile /etc/ssl/ca/ca.crt SSLCertificateKeyFile /etc/ssl/ca/ca.key </IfModule> </VirtualHost>
где
Название | Описание |
---|---|
ServerName | имя нашего сервера, то же что и при создании сертификата<br\> |
DocumentRoot | Путь до корня сайта |
Вообще пример данного файла есть в /etc/httpd/conf/vhosts.d/01_default_ssl_vhost.conf. Только у него надо поменять расширение, что бы apache его не цеплял.