Бесплатный SSL сертификат Let’s Encrypt для сервера Apache под Centos 6/7

В этой статье рассмотрим инструкцию для администратора VPS или выделенного сервера, работающего под управлением операционных систем Centos версий 6 или 7 и использующего веб-сервер Apache. Наша цель — установить бесплатный SSL-сертификат от Let’s Encrypt и запустить сайт (или несколько сайтов) по протоколу https с указанием «Надежный» в строке браузера.

Итак, шаг первый: Устанавливаем необходимое программное обеспечение. 

В большинстве инструкций для NGINX есть указание на то, что необходимо установить среду git и лишь затем устанавливать клиент Let’s Encrypt. Это правильная инструкция, однако для тех, кто работает под операционными системами Centos есть другой вариант — использовать обычный yum и поставить облегченный, но вполне рабочий официальный клиент certbot.

yum install python-certbot-apache

Кроме того, если Apache пока не готов работать с SSL, необходимо установить модуль для него (если модуль уже установлен, вреда команда не нанесет):

yum install epel-release mod_ssl

На этом с установки программного обеспечения всё.

Шаг второй: Запрашиваем SSL-сертификаты для наших доменов.

При этом если доменов несколько, первый по списку будет считаться базовым.

certbot --apache -d example.com -d www.example.com

В процессе выполнения команды появится окно, где будет запрошен адрес электронной почты для связи в случае возникновения проблем, система задаст вопрос — следует ли разрешать вызывать сайт исключительно через https или можно воспользоваться более мягким вариантом — http + https.

Всё! Сертификат создан и установлен! Теперь переходим к настройкам:

Шаг третий: Настраиваем наш веб-сайт

Важно, чтобы все картинки, все css-файлы, все скрипты грузились только через https. Для этого проверяем все ссылки и везде http заменяем на https.

Шаг четвертый: Настраиваем Apache и проверяем наш сайт

Для этого воспользуемся ссылкой: https://www.ssllabs.com/ssltest/analyze.html

Как правило, при первом тестировании результаты выглядят так:

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

В терминале набрать команду

# vi /etc/httpd/conf.d/ssl.conf

После этого найти директиву SSLProtocol и добавить в конце нее -SSLv3

Затем нужно найти строчку с директивой SSLCipherSuite и закомментировать ее (поставить символ # в ее начале).

После того, как изменения внесены (в редакторе vi — нажать клавишу ESC затем ввести  ) — перезагружаем Apache
Если все сделали правильно, то в открытом окне https://www.ssllabs.com/ssltest/analyze.htmlможно нажать ссылку Clear cache — скорее всего мы получим отличные результаты:


Важно! Сертификаты Let’s Encrypt выдаются только на три месяца! Однако их можно автоматически обновлять.

Для этого обязательно выполняем Шаг пятый: Добавляем команду обновления сертификатов.

Лучше всего эту команду добавить прямо в cron, чтобы она выполнялась по расписанию.

Для этого открываем крон на редактирование:

crontab -e

И последней строчкой добавляем следующее:

15 3 * */2 * /usr/bin/certbot renew >> /var/log/sslrenew.log

А после записываем крон (как и выше, в случае с vi- клавиша ESC и :х).

В этом случае раз в два месяца, в 3.15 ночи сервер будет запрашивать новые сертификаты и писать журнал их обновлений в файл /var/log/sslrenew.log

Добавить комментарий