Certbot + Nginx

Тема дорожной карты · Nginx

Certbot — официальный клиент Let's Encrypt, автоматизирующий выпуск и обновление бесплатных SSL/TLS-сертификатов; плагин --nginx напрямую редактирует конфигурацию веб-сервера Nginx, обеспечивая HTTPS с минимальными ручными действиями. Команда certbot --nginx -d example.com автоматически получает сертификат, записывает директивы ssl_certificate и ssl_certificate_key в соответствующий блок server и настраивает редирект с HTTP на HTTPS, делая полное шифрование SSL/TLS достижимым за секунды. По умолчанию Certbot с Nginx использует ACME HTTP-01 challenge, временно отдавая токен валидации из /.well-known/acme-challenge/ — путь должен быть доступен через порт 80 и не заблокирован правилами deny или auth_basic. Автоматическое обновление обеспечивается таймером systemd или заданием cron, выполняющим certbot renew --quiet с последующим вызовом nginx -s reload для применения нового сертификата без разрыва соединений. Связка Certbot и Nginx — стандартный подход к защите конфигураций обратного прокси и балансировщика нагрузки сертификатами производственного уровня SSL/TLS на любом сервере Linux.

Как это работает

Certbot + Nginx обязателен в 2026. Конфигурация: listen 443 ssl http2;, ssl_certificate /path/fullchain.pem;, ssl_certificate_key /path/privkey.pem;. Современный протокол + cipher: ssl_protocols TLSv1.2 TLSv1.3;, ssl_ciphers ECDHE-... (Mozilla "intermediate" profile — разумный дефолт: https://ssl-config.mozilla.org/). Включайте OCSP stapling, session caching (ssl_session_cache shared:SSL:10m), session tickets осторожно. Авто-renew сертов через certbot (Let's Encrypt) или step-ca.

Когда применять

Let's Encrypt + certbot — для бесплатных авто-ренью сертов в большинстве случаев. Mozilla SSL Configuration Generator — для списка cipher. Тест на SSL Labs (ssllabs.com/ssltest) — цель A+. HTTP → HTTPS редирект на server-уровне. HSTS — только после уверенности, что HTTPS работает везде (неверный HSTS-preload навсегда). TLS 1.3 — самый современный.

Типичные ошибки

Ловушки Certbot + Nginx: включён SSLv3 / TLS 1.0/1.1 (уязвимы — отключите); слабые cipher (DES, RC4); HSTS слишком рано (запирает HTTPS-only до получения сертов всеми поддоменами); серты истекают, потому что ручное renew забыли (всегда автоматизируйте); session tickets с дефолтным ephemeral-ключом, меняющимся на каждый reload (слишком агрессивно для больших сайтов).

Связанные понятия

Полезные ресурсы