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

Веб-сервисы
После установки сертификата требуется еще донастроить веб-сервер Apache
В этой статье рассмотрим инструкцию для администратора 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 http://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




Спасибо за ваши донаты!