С обновленными требованиями 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 сертификат.