l team di sviluppo di Nginx ha annunciato l’introduzione del modulo ngx_http_acme_module, una novità che promette di semplificare radicalmente la gestione dei certificati HTTPS. Grazie all’integrazione diretta del protocollo ACME, sarà possibile generare, installare e rinnovare certificati SSL/TLS senza ricorrere a strumenti esterni come Certbot o ACME.sh. . Questo significa meno dipendenze, meno configurazioni manuali e una maggiore coerenza operativa per chi utilizza Nginx su Linux.

Il modulo è scritto in Rust e attualmente disponibile per test. La sua implementazione consente di configurare direttamente nel file di configurazione di Nginx tutte le opzioni necessarie per comunicare con una Certification Authority (CA) compatibile con ACME, come Let’s Encrypt.
Come funziona il protocollo ACME e perché è utile
ACME (Automated Certificate Management Environment) è un protocollo progettato per automatizzare il rilascio, la verifica, il rinnovo e la revoca dei certificati digitali. Permette ai client di interagire con una CA senza intervento manuale, semplificando il processo di messa in sicurezza dei siti web. Con l’integrazione nativa in Nginx, questo processo diventa ancora più diretto e meno soggetto a errori.
La configurazione del modulo ACME in Nginx si articola in quattro passaggi: definizione del server ACME, allocazione della memoria condivisa, configurazione delle challenge e gestione dei certificati. Il primo passo consiste nel dichiarare l’autorità emittente, ad esempio Let’s Encrypt, specificando l’URL del servizio, l’email di contatto, il percorso per salvare lo stato e l’accettazione dei termini di servizio.
Configurazione semplice e gestione automatica
Una volta definita l’autorità, è possibile allocare memoria condivisa per memorizzare certificati, chiavi private e challenge. La configurazione supporta la challenge HTTP-01, che verifica la proprietà del dominio tramite una richiesta HTTP. Nginx deve essere configurato per rispondere su porta 80, esponendo la risposta alla challenge in modo che la CA possa verificarla. Il rilascio e il rinnovo dei certificati avviene tramite la direttiva acme_certificate, che si inserisce nel blocco server dedicato alla porta 443. È sufficiente indicare il nome dell’autorità e i domini da proteggere, e il modulo si occuperà di tutto il resto. I certificati e le chiavi vengono gestiti come variabili interne ($acme_certificate e $acme_certificate_key), semplificando ulteriormente la configurazione SSL.
Attualmente, la configurazione non supporta wildcard o espressioni regolari nei nomi di dominio, quindi è necessario elencare esplicitamente ogni dominio da includere nel certificato. Tuttavia, il team di sviluppo ha già previsto l’estensione del supporto ad altre challenge come TLS-ALPN e DNS-01.
Un’alternativa diretta a Certbot e ACME.sh
Fino ad oggi, la gestione automatica dei certificati HTTPS su Nginx richiedeva strumenti esterni come Certbot o script come ACME.sh. . Questi strumenti, seppur efficaci, introducono complessità e dipendenze che possono diventare problematiche in ambienti minimalisti o automatizzati. Con ngx_http_acme_module, Nginx diventa autosufficiente, riducendo il rischio di errori e semplificando il deployment.
La disponibilità del modulo su tutte le piattaforme compatibili con Nginx lo rende una soluzione versatile per server Linux, container, ambienti embedded e cloud. Apache, il principale concorrente di Nginx, dispone da tempo di un modulo simile (mod_md), ma l’arrivo di questa funzionalità su Nginx colma finalmente una lacuna importante.