Протокол HTTPS – обязательное условие для защиты данных и доверия пользователей. Применение TLS/SSL-шифрования является общепринятым стандартом, гарантирующим защиту данных, передаваемых между сервером и клиентом. Использование менее безопасного протокола HTTP, не предусматривающего шифрование, несет риски перехвата данных и противоречит требованиям безопасности. Кроме того, наличие TLS/SSL-сертификата у общедоступного веб-ресурса зачастую влияет на его ранжирование в поисковых системах.
В статье разберём, как настроить HTTPS-доступ к сайту, работающему на веб-сервере Nginx, в Rocky Linux 9.
Как настроить HTTPS-доступ к сайту на Nginx
Процесс настройки HTTPS-доступа к веб-сайту рассмотрим на примере виртуального выделенного сервера с Rocky Linux 9 и установленным веб-сервером Nginx, на котором настроен работающий веб-сайт. Подключение к сайту организовано при помощи протокола HTTP, а сам веб-сайт доступен по своему доменному имени, привязанному с использованием A-записи к IP-адресу виртуального сервера.
Установка утилиты Certbot
Настройка HTTPS-доступа к сайту заключается в установке TLS/SSL-сертификата на веб-сервер, на котором работает данный сайт. Наиболее популярный центр сертификации, выпускающий бесплатные TLS/SSL-сертификаты – Let’s Encrypt. Процесс выдачи, настройки и продления таких сертификатов полностью автоматизирован при помощи протокола ACME. Для установки TLS/SSL-сертификата на Nginx используется утилита Certbot, которая позволяет полностью автоматизировать процесс получения, установки, настройки и обновления сертификатов.
В Rocky Linux 9 утилита Certbot по умолчанию не включена в официальные базовые репозитории. Тем не менее, она доступна для установки через репозиторий EPEL, предоставляющий дополнительные пакеты, которые не входят в основной дистрибутив, но безопасны и совместимы с ним.
Исходя из чего, первым шагом установите в систему репозиторий EPEL:
$ sudo dnf install epel-release
По окончании установки проинсталлируйте следующие пакеты:
certbot– основной клиент для взаимодействия с центром сертификации Let’s Encrypt;python3-certbot-nginx– официальный плагин для веб-сервера Nginx.
$ sudo dnf install certbot python3-certbot-nginx
Настройка брандмауэра
Для того, чтобы после установки TLS/SSL-сертификата была возможность подключиться к сайту по протоколу HTTPS, необходимо открыть доступ к серверу для данного протокола. Чтобы это сделать, добавьте в текущую конфигурацию межсетевого экрана соответствующее разрешающее правило:
$ sudo firewall-cmd --permanent --add-service=https
Кроме того, сервер также должен быть доступен для протокола HTTP, поскольку его использует центр сертификации для проверки валидности домена, используемого при настройке HTTPS:
$ sudo firewall-cmd --permanent --add-service=http
После внесения изменений перезапустите конфигурацию Firewalld, чтобы данные изменения вступили в силу:
$ sudo firewall-cmd --reload
Установка TLS/SSL-сертификата при помощи Certbot
Для старта процесса получения и установки сертификата запустите утилиту Certbot с использованием плагина Nginx. В данной команде вместо your-site-name.ru используйте доменное имя вашего сайта.
$ sudo certbot --nginx -d your-site-name.ru
В процессе работы утилита Certbot попросит произвести некоторые действия:
- указать адрес электронной почты для отправки важных обновлений политики или уведомлений, касающихся службы;
- согласиться с условиями предоставления услуги;
- дать разрешение на передачу email партнёру-основателю проекта Let’s Encrypt и некоммерческой организации, разрабатывающей Certbot, Electronic Frontier Foundation.

В результате Certbot зарегистрирует в Let’s Encrypt вашу учётную запись и запросит TLS/SSL-сертификат. После успешной проверки владения доменом утилита получит запрошенный сертификат, установит его в систему и внесёт необходимые корректировки в настройки веб-сервера.
Запуск таймера автоматического продления сертификатов и проверка HTTPS-доступа
Установленный сертификат имеет ограниченный срок действия — по умолчанию 90 дней. При этом утилита Certbot в автоматическом режиме проверяет установленные сертификаты и пробует обновить их до истечения срока действия. Изначально таймер автоматического продления сертификатов в Certbot отключён. Чтобы его включить, выполните команду, которая установит данный сервис в автозагрузку и сразу же запустит его:
$ sudo systemctl enable --now certbot-renew.timer
Убедиться в том, что отслеживание срока действия сертификатов включено, можно при помощи команды:
$ systemctl list-timers | grep certbot
Вывод команды должен показать, что в системе активирован и запущен таймер автоматического продления сертификатов Certbot.

Чтобы проверить использование HTTPS при подключении к сайту, запустите браузер и перейдите на https://your-site-name.ru, где укажите имя вашего сайта вместо your-site-name.ru.

В навигационной строке кликните на значок с замочком, где сообщение вида Подключение защищено будет свидетельствовать о том, подключение осуществляется при помощи протокола HTTPS.
