Certbot для Nginx: выпуск и проверка продления

Категория: Nginx · Язык: Bash · Обновлено:

На Ubuntu сертификат Let's Encrypt для Nginx можно получить Certbot: установите пакет, проверьте конфигурацию веб-сервера и запустите sudo certbot --nginx -d example.com -d www.example.com. До команды домены должны указывать на сервер, а входящие соединения на порты 80 и 443 — быть доступны.

Установка на Ubuntu

Bash
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo nginx -t

Для production используйте актуальную инструкцию Certbot для своей версии Ubuntu: способ установки и поддерживаемая версия пакета могут отличаться.

Выпустить сертификат

Bash
sudo certbot --nginx -d example.com -d www.example.com

Интерактивный мастер запросит адрес для уведомлений и согласие с условиями, затем обновит конфигурацию Nginx. Перед подтверждением проверьте, что перечислены все нужные домены.

Проверить установленный сертификат и продление

Bash
sudo certbot certificates
sudo certbot renew --dry-run
systemctl list-timers | grep certbot

Команда

Назначение

certbot certificates

Показать сертификаты и сроки действия

certbot renew --dry-run

Тестовое продление без замены рабочего сертификата

systemctl list-timers

Проверить запланированный запуск таймера

Почему проверка Certbot не проходит?

Проверьте A/AAAA-записи, доступность порта 80, firewall и совпадение домена с server_name. Если сайт за CDN или reverse proxy, убедитесь, что HTTP challenge доходит до сервера.

Нужно ли вручную запускать renew по cron?

Обычно пакет настраивает systemd timer или cron. Сначала проверьте существующий автоматический запуск; не добавляйте второй параллельный планировщик без причины.