14 августа 2025 года вышел Nginx 1.29.1. Это не только багфиксы: в комплекте появился модуль ngx_http_acme на Rust. С ним можно запрашивать и обновлять TLS-сертификаты Let’s Encrypt прямо из Nginx, без отдельного certbot, acme.sh и cron-скриптов на перезагрузку.
Безопасность
- Закрыта критическая уязвимость CVE-2025-53859 в
ngx_mail_smtp_module. При SMTP-аутентификации в режиме"none"можно было прочитать кусок памяти рабочего процесса. В 1.29.1 дыра закрыта. - По умолчанию отключено сжатие сертификатов TLSv1.3.
- Добавлена директива
ssl_certificate_compression: сжатие сертификатов включаете сами, если нужно.
Новые возможности
- QUIC с 0-RTT (при OpenSSL 3.5.1+) – меньше задержки на повторных соединениях.
- Исправления в HTTP/2, HTTP/3 и обработке заголовков
Host/:authority. - Починена сборка на NetBSD 10.0.
Модуль ngx_http_acme
Модуль автоматизирует:
- запрос сертификатов по ACMEv2;
- принятие ToS Let’s Encrypt;
- регулярное обновление без ручного вмешательства.
Зачем это: раньше ставили certbot или acme.sh, вешали cron и перезагружали nginx. Теперь цепочку ACME можно описать в конфиге самого сервера.
Пример конфигурации
acme_issuer letsencrypt {
uri https://acme-v02.api.letsencrypt.org/directory;
state_path /var/cache/nginx/acme-letsencrypt;
accept_terms_of_service;
}
server {
listen 80; # HTTP-01 challenge
location / { return 404; }
}
server {
listen 443 ssl;
server_name example.com;
acme_certificate letsencrypt;
ssl_certificate $acme_certificate;
ssl_certificate_key $acme_certificate_key;
ssl_certificate_cache max=2;
}
Итог
Nginx 1.29.1 даёт три понятных плюса:
- закрытый CVE и более жёсткие дефолты TLS;
- QUIC 0-RTT и правки HTTP/2/3;
- встроенный ACME без внешних скриптов.
Для DevOps-стека обновление имеет смысл: меньше обвязки вокруг сертификатов, безопаснее mail-модуль, аккуратнее TLS-дефолты. ACME-модуль – шаг к тому, чтобы Nginx сам закрывал жизненный цикл сертификатов, а не только раздавал HTTPS.