Включаем HTTPS в Apache

Чтобы подключить 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

[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

Максим Макаров

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

Оцените автора
IT Draft
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.