23.06.2025

Возможности использования Certbot для web-сервера Nginx

Введение

Для настройки безопасности Nginx воспользуемся центром сертификации (ЦС) для установки бесплатных сертификатов TLS/SSL, тем самым предоставим шифрование для HTTPS на web-серверах.

В этой инструкции будут рассмотрены возможности использования Certbot, чтобы получить бесплатный SSL-сертификат для web-сервера Nginx на Debian 10 и рассмотрим настройку автоматического обновления сертификатов.

Подготовка к работе

Следует выполнить несколько шагов перед тем, как приступать к основной задаче:

Установка Certbot

Согласно документации Certbot рекомендуется устанавливать пакет через snap. Необходимо удостовериться, что ядро snapd установлен и обновлен.

snap install core && snap update core

Установим пакет certbot используя snap:

snap install --classic certbot

После установки создадим символическую ссылку для выполнения certbot из директории /usr/bin/:

ln -s /snap/bin/certbot /usr/bin/certbot

После успешной установки certbot можно приступить к настройке конфигурации Nginx.

Конфигурация Nginx

Certbot производит поиск строки server_name в конфигурационных файлах Nginx и настраивает автоматически SSL:

cp /etc/nginx/sites-avaliable/default /etc/nginx/sites-avaliable/serverspace.tm
vim /etc/nginx/sites-avaliable/serverspace.tm
...
server_name serverspace.tm www.serverspace.tm
...

И выполним выход сохранением с помощью:

:wq!

Проверьте состояние конфигурации после изменение файлов с помощью:

nginx -t

Если при тестировании конфигурации получите следующее сообщение об ошибке:

nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)

То закомментируйте строку listen [::]:80; в файле /etc/nginx/sites/avaliable/.
Убедившись в правильности написанного кода наших конфигурационных файлов, перезапустим nginx:

service nginx restart

Разрешение HTTPS через ufw

Ufw брандмауэр должен быть настроен согласно с инструкцией и разрешим полный доступ для подключения к Nginx:

ufw allow 'Nginx Full'

Удалим старое разрешение к Nginx HTTP:

ufw delete allow 'Nginx HTTP'

Проверим статус брандмауэра с помощью:

ufw status

Далее запустим certbot и приступим к получению сертификата

SSL-сертификаты

Выполним следующую команду для получения сертификата для нашего домен:

certbot --nginx -d serverspace.tm -d www.serverspace.tm

В процессе необходимо будет ввести адрес электронной почты и получим результаты путь до сертификатов и срок сертификатов.
После всех настроек, полученных сертификатов, наши web-запросы будут перенаправляться на https:// в автоматическом порядке.

Автообновление Certbot

Протестируем процесс обновления с помощью запуска certbot:

certbot renew --dry-run

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

Выводы

В данной инструкции рассмотрели: