Nginx introduces native support for ACME protocol
NGINX теперь умеет ACME
Появился превью-модуль ngx_http_acme_module
, который прямо из конфига NGINX запрашивает, устанавливает и продляет сертификаты. Модуль написан на Rust через NGINX-Rust SDK и работает как в NGINX Open Source, так и в NGINX Plus.
Плюсы:
- меньше ручных действий и ошибок;
- не нужен Certbot и прочие внешние утилиты;
- одинаково работает на любой платформе.
Что такое ACME
Протокол автоматизирует выпуск, проверку и обновление SSL/TLS-сертификатов. Разработан ISRG для Let’s Encrypt в 2015 году, нынешняя версия — ACMEv2.
4 шага настройки
-
ACME-сервер
acme_issuer letsencrypt { uri https://acme-v02.api.letsencrypt.org/directory; state_path /var/cache/nginx/acme-letsencrypt; accept_terms_of_service; }
-
Разделяемая память
acme_shared_zone zone=acme_shared:1M;
-
HTTP-01 challenge
server { listen 80; location / { return 404; } }
TLS-ALPN и DNS-01 позже.
-
Выдача/обновление
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; }