Ключевой фактор для успешной работы в интернете – безопасность. Пользователи ожидают защищённого подключения к сайту, а поисковые системы отдают предпочтение ресурсам, работающим по HTTPS. Let’s Encrypt предлагает простой, бесплатный и надёжный способ настроить безопасное соединение для сайта. В статье разберём, как настроить защиту сайта на веб-сервере Apache с помощью Let’s Encrypt на Debian 12.
В настоящем руководстве в качестве примера мы будем использовать веб-сайт, работающий на Apache, доступ к которому осуществляется при помощи протокола HTTP.
Кроме того, в операционной системе виртуальной машины произведены предварительные настройки, призванные обеспечить первоначальный уровень безопасности VPS.
Установка TLS-сертификата
Для настройки HTTPS идеально подходит Certbot. Утилита Certbot – инструмент с открытым исходным кодом, разработанный для автоматизации работы с центром сертификации Let’s Encrypt. Certbot позволяет получать, устанавливать и обновлять бесплатные TLS-сертификаты, которые обеспечивают защищённое соединение по протоколу HTTPS.
Чтобы установить Certbot в системе, выполните команду:
$ sudo apt install certbot python3-certbot-apache
После чего запустите установку и настройку TLS-сертификата для веб-сервера Apache:
$ sudo certbot --apache
В ходе своей работы команда попросит вас ввести адрес электронной почты, который будет использоваться для обновления и уведомлений о безопасности. Далее команда попросит разрешения поделиться адресом электронной почты с Electronic Frontier Foundation, партнером-основателем проекта Let’s Encrypt. Затем нужно будет указать домены, для которых выпускается сертификат. После чего команда отправит запрос в Let’s Encrypt на выдачу сертификата для указанных доменов. В результате Certbot автоматически обновит конфигурацию Apache и настроит автоматическое перенаправление трафика с HTTP на HTTPS. После чего утилита перезапустит веб-сервер, чтобы применить изменения.
Настройка брандмауэра
После установки сертификата необходимо предоставить доступ к виртуальному серверу с использованием протокола HTTPS. Для этого добавьте в брандмауэр UFW соответствующее разрешающее правило. Профиль для такого подключения в UFW называется WWW Secure
:
$ sudo ufw allow 'WWW Secure'
Чтобы убедиться, что правило добавлено, выведите на экран состояние брандмауэра. Вывод команды должен содержать строки, соответствующие профилю WWW Secure
:
$ sudo ufw status
В результате ваш сервер станет доступен для HTTPS. Теперь вы уже можете проверить, открывается ли ваш сайт использованием защищённого соединения. Для этого запустите браузер и перейдите по ссылке https://vash-domain.ru
, где замените vash-domain.ru
на доменное имя вашего сайта.
Проверка автоматического обновления сертификата
Для тестирования процесса обновления SSL-сертификатов запустите команду:
$ sudo certbot renew --dry-run
Данная процедура позволяет убедиться, что настройка сервера и Certbot произведена корректно, и автоматическое обновление сертификатов сработает без ошибок.
Также проверьте наличие и статус таймера certbot.timer
, который отвечает за автоматическое обновление сертификатов Let’s Encrypt:
$ sudo systemctl list-timers | grep certbot
Вывод команды должен содержать информацию о таймере certbot.timer
, если он активен. Например:
Fri 2024-12-06 21:37:18 MSK 5h 32min left Fri 2024-12-06 08:51:08 MSK 7h ago certbot.timer certbot.service
В данном случае вывод команды содержит данные о следующем запланированном запуске таймера и оставшемся времени до момента, когда таймер сработает.