Мини Вики. Чтоб ничего не забыть!

Apache + mod_ssl на CentOS


Предварительно установим Apache

yum install httpd

Затем нужно запустить Apache в качестве сервиса CentOS, чтобы автоматизировать запуск Apache после перезагрузки:

systemctl enable httpd.service

# запускаем apache

service httpd restart

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

yum install mod_ssl

После установки модуль включится автоматически, после чего Apache сможет использовать сертификаты SSL. Осталось только перезапустить Apache, чтобы mod_ssl был готов к использованию.

service httpd restart

Теперь веб-сервер подготовлен к шифрованию данных. Приступайте к созданию нового SSL-сертификата. Сертификат будет содержать некоторую базовую информацию о сайте; также к нему прилагается key-файл, благодаря которому сервер может обрабатывать зашифрованные данные.

Сначала нужно создать новый каталог, в котором будет храниться ключ сервера (key-файл) и сам сертификат:

mkdir /etc/httpd/ssl

При помощи команды openssl создайте ключ и сертификат SSL:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

После ввода запроса будет открыта командная строка, в которой можно ввести информацию о сайте.

Итак, все необходимые компоненты готовы. Теперь нужно настроить виртуальный хост для отображения нового сертификата.

Откройте конфигурационный файл Apache для SSL в текстовом редакторе с привилегиями root:

nano /etc/httpd/conf.d/ssl.conf

Найдите раздел, который начинается с . В него нужно внести несколько изменений, чтобы сертификат должным образом отображался на сайте.

Сначала раскомментируйте строку DocumentRoot и отредактируйте адрес в кавычках, указав свой каталог document root. По умолчанию это /var/www/html; если вы используете другой root-каталог веб-сервера, укажите в этой строке правильный адрес.

DocumentRoot "/var/www/example.com/public_html"

Затем раскомментируйте строку ServerName (вместо www.example.com укажите свое доменное имя или IP, в зависимости от того, что было указано в поле Common Name).

ServerName www.example.com:443

Найдите строки SSLCertificateFile и SSLCertificateKeyFile и укажите в них адрес ключа и сертификата – каталог /etc/httpd/ssl:

SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Внеся все изменения, сохраните и закройте файл.

На данный момент SSL-сертификат и веб-сервер готовы. Чтобы применить все изменения и запустить шифрование SSL, перезапустите сервер Apache, это обновит его конфигурации:

apachectl restart

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

https://yourSiteName.com/

Скорее всего, браузер выдаст предупреждение вроде «site’s security certificate is not trusted». Это значит, что браузер не может доверять сертификату, который не был заверен авторитетным центром сертификации. Это вполне ожидаемая реакция.

Чтобы продолжить, нужно добавить исключение в проверку подлинности браузера.

Заключение

Теперь сервер Apache поддерживает запросы HTTP и HTTPS. Это обезопасит взаимодействие с клиентами и не позволит посторонним читать ваш трафик.