Как настроить защиту Apache с Let’s Encrypt на Debian 12

Ключевой фактор для успешной работы в интернете – безопасность. Пользователи ожидают защищённого подключения к сайту, а поисковые системы отдают предпочтение ресурсам, работающим по HTTPS. Let’s Encrypt предлагает простой, бесплатный и надёжный способ настроить безопасное соединение для сайта. В статье разберём, как настроить защиту сайта на веб-сервере Apache с помощью Let’s Encrypt на Debian 12.

В настоящем руководстве в качестве примера мы будем использовать веб-сайт, работающий на Apache, доступ к которому осуществляется при помощи протокола HTTP.

Страница сайта с доступом по протоколу HTTP - Как настроить защиту Apache с Let's Encrypt

Кроме того, в операционной системе виртуальной машины произведены предварительные настройки, призванные обеспечить первоначальный уровень безопасности 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

Список правил брандмауэра UFW - Как настроить защиту Apache с Let's Encrypt

В результате ваш сервер станет доступен для HTTPS. Теперь вы уже можете проверить, открывается ли ваш сайт использованием защищённого соединения. Для этого запустите браузер и перейдите по ссылке https://vash-domain.ru, где замените vash-domain.ru на доменное имя вашего сайта.

Страница сайта с доступом по протоколу HTTPS

Проверка автоматического обновления сертификата

Для тестирования процесса обновления SSL-сертификатов запустите команду:

$ sudo certbot renew --dry-run

Проверка обновления SSL-сертификатов

Данная процедура позволяет убедиться, что настройка сервера и 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

В данном случае вывод команды содержит данные о следующем запланированном запуске таймера и оставшемся времени до момента, когда таймер сработает.

Вам также может понравиться