С обновленными требованиями Google и Yandex, теперь необходимо иметь SSL сертификат и отдавать сайт по HTTPS. Но далеко не всегда удаётся установить SSL сертификат через панель управления хостингом. Но всегда можно сделать это по-другому и установить SSL сертификат на Apache через httpd.conf.
Apache – это волшебная штуковина, которую можно конфигурировать так, как захочется.
Итак, для того, чтобы установить SSL сертификат на Apache нам потребуется:
- Apache
- Сертификат на конкретный домен, который можно получить тут, а точнее:
- приватный RSA ключ (полученый при запросе на сертификат)
- сам сертификат (файл с расширением crt)
- файл с цепочкой ключей (ca-bundle), обычно идет вместе с сертификатом
Шаг 1: подготовка к установке SSL сертификат на Apache через httpd.conf
Сначала нужно найти, где находится файл httpd.conf. Обычно он лежит по такому пути: /etc/httpd/httpd.conf, в некоторых случаях /etc/httpd/confd/httpd.conf.
Нужно открыть его для редактирования. Я предпочитаю редактор nano, но можно использовать любой другой в том числе и sFTP-редактор.
Откроем файл:
nano /etc/httpd/httpd.conf
Обратите внимание, делать это нужно под пользователем root либо с директивой sudo.
Шаг 2:
Находим в этом файле запись о вашем домене, выглядит это приблизительно так:
<VirtualHost *:80> ServerName site.com DocumentRoot /var/www/site.com ServerAlias www.site.com ServerAdmin webmaster@site.com AddHandler php-cgi .php .php3 .php4 .php5 .phtml </VirtualHost>
Как видим, он слушает на 80 порту, а нам нужно сделать подключение по порту https (443), кроме того, нам нужно включить директиву ssl, чтобы apache знал, что он должен работать по https, и указать пути к файлам с сертификатом.
Шаг 3: прописываем SSL сертификат на Apache через httpd.conf
Наша запись VirtualHost в httpd.conf теперь должна выглядеть вот так:
<VirtualHost *:443> ServerName site.com DocumentRoot /var/www/site.com SSLEngine on SSLCertificateFile /path/to/certificate-site.com.crt SSLCertificateKeyFile /path/to/rsa-site.com.key SSLCertificateChainFile /path/to/key-chain-bundle-site.com.ca-bundle ServerAlias www.site.com ServerAdmin webmaster@site.com AddHandler php-cgi .php .php3 .php4 .php5 .phtml </VirtualHost>
Шаг 4: проверка и запуск
Готово. Теперь сохраним файл httpd.conf и проверим, чтобы всё в нем было правильно. Сделаем это командой:
apachectl configtest
Если всё хорошо, то проверка напишет «ОК», если есть проблемы, о них сообщат и нужно будет их исправить.
Если всё «ОК», значит нужно перезапускать apache. Для этого вызовем команду:
service httpd restart
Всё должно пройти успешно, и домен станет работать с вашим SSL сертификатом.
Если надумали получить SSL сертификат для своего сайта, то можно это сделать вот тут: получить SSL сертификат.