Чтобы подключить SSL шифрование нам надо установить OpenSSL и mod-ssl (расширение для Apache)
[root@localhost ~]# yum install mod_ssl openssl
Генерируем собственный сертификат используя OpenSSL, для этого
- Генерируем приватный ключ с 2048-битным шифрованием
- Генерируем запроса на сертификат CSR
- Генерируем самоподписанный ключ на 356 дней
[root@localhost ~]# openssl genrsa -out ca.key 2048
[root@localhost ~]# openssl req -new -key ca.key -out ca.csr
[root@localhost ~]# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
Перемещаем полученные файлы в правильное место
[root@localhost ~]# mv ca.crt /etc/pki/tls/certs
[root@localhost ~]# mv ca.key /etc/pki/tls/private/ca.key
[root@localhost ~]# mv ca.csr /etc/pki/tls/private/ca.csr
Обновим конфигурационный файл Apache SSL
Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров
Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.
[root@localhost ~]# vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
После чего надо перезапустить Apache
[root@localhost ~]# service httpd restart
Настройка виртуальных хостов
Все аналогично тому, как вы создавали VirtualHosts для HTTP на 80 порту – все тоже для HTTPS на порту 443. Типичный виртуальный хост для 80 порта выглядит так
<VirtualHost *:80>
<Directory /var/www/vhosts/yoursite.com/httpdocs>
AllowOverride All
</Directory>
DocumentRoot /var/www/vhosts/yoursite.com/httpdocs
ServerName yoursite.com
</VirtualHost>
Чтобы включить ssl, необходимо добавить следующее в верхней части вашего файла
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
<Directory /var/www/vhosts/yoursite.com/httpsdocs>
AllowOverride All
</Directory>
DocumentRoot /var/www/vhosts/yoursite.com/httpsdocs
ServerName yoursite.com
</VirtualHost>
И перезапустить Apache
[root@localhost ~]# service httpd restart
Настройка брандмауэра
Нам надо открыть порт 443, чтоб можно было подключаться к сайту по https
[root@localhost ~]# iptables -A INPUT -p tcp --dport 443 -j ACCEPT
[root@localhost ~]# /sbin/service iptables save
[root@localhost ~]# iptables -L -v