SSL шифрование web-сервера на Apache Печать

Пример настройки web-сервера Apache на операционной системе Linux CentOS, поддерживающего шифрование трафика.

 

[]# yum install mod_ssl openssl # Устанавливаем софт в дополнение к Apache
 # СОЗДАЕМ САМОПОДПИСАННЫЙ СЕРТИФИКАТ
[]# openssl genrsa -out ca.key 2048 # Сгенерируем приватный ключ
[]# openssl req -new -key ca.key -out ca.csr # Сгенерируем запрос на сертификат CSR
[]# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt # Сгенерируем самоподписанный сертификат
 # ПЕРЕМЕСТИМ ПОЛУЧЕННЫЕ ФАЙЛЫ
[]# mv ca.crt /etc/pki/tls/certs/ca.crt
[]# mv ca.key /etc/pki/tls/private/ca.key
[]# mv ca.csr /etc/pki/tls/private/ca.csr

Изменяем конфиг Apache SSL

[]# vim /etc/httpd/conf.d/ssl.conf

SSLCertificateFile /etc/pki/tls/certs/ca.crt

SSLCertificateKeyFile /etc/pki/tls/private/ca.key

[]# service httpd restart

 

Дописываем конфиг, отвечающий за виртуальные хосты веб-сервера

Чтобы избежать предупреждений Apache при запуске, в начало файла добавляем строку:

NameVirtualHost *:443

 

Для 80 порта конфиг обычно выглядит примерно так:


ServerName site.ua
ServerAlias www.site.ua
ServerAdmin Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
DocumentRoot /var/www/vhosts/site


Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all


Order deny,allow
deny from all



Order deny,allow
deny from all


CustomLog /var/www/vhosts/site/logs/site.ua.log combined
ErrorLog /var/www/vhosts/site/logs/site.ua.error.log
DirectoryIndex index.php index.htm index.html

Добавляем виртуальный хост для зашифрованной странички:


SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

DocumentRoot /var/www/vhosts/site
ServerName site.ua
ServerAlias www.site.ua
ServerAdmin postmaster@site.ua


Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all



Order deny,allow
deny from all



Order deny,allow
deny from all

CustomLog /var/www/vhosts/site/logs/site.ua-ssl.log combined
ErrorLog /var/www/vhosts/site/logs/site.ua.error-ssl.log

 

Перезапускаем Apache:

[]# service httpd restart

 

Правим настройки фаервола

[]# vim /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

[]# service iptables restart
[]# iptables -L -v