
Quando si gestiscono più sottodomini avere un certificato SSL wildcard è una delle soluzioni più comode per semplificare la configurazione e mantenere tutto protetto con un solo certificato.
In questo scenario l’accoppiata tra Nginx Proxy Manager, Let’s Encrypt e Cloudflare rappresenta una soluzione pratica, moderna ed efficace, soprattutto se si vuole automatizzare il rilascio e il rinnovo dei certificati senza impazzire con configurazioni manuali.
In questo articolo vedremo come configurare un certificato wildcard Let’s Encrypt in Nginx Proxy Manager utilizzando Cloudflare tramite DNS Challenge, una procedura particolarmente utile quando i servizi non sono esposti direttamente in pubblico oppure quando si desidera una gestione più pulita e flessibile dei sottodomini.
Ti guiderò passo dopo passo nella configurazione spiegando non solo cosa fare, ma anche perché farlo, così da ottenere un setup affidabile, sicuro e facilmente replicabile.
PREREQUISITI
- Dominio gestito su Cloudflare
- Nginx Proxy Manager funzionante
- Accesso admin a Cloudflare
- Possibilità di creare un API Token Cloudflare con permessi DNS minimi
Per i token Cloudflare, la combinazione raccomandata è:
Zone – DNS – Edit
Zone – Zone – Read
Cloudflare documenta la creazione dei token, e questa coppia di permessi è anche quella normalmente richiesta dai client ACME che usano Cloudflare.
CONFIGURARE IL DOMINIO SU CLOUDFLARE
Accedere a Cloudlfare
Cliccare su Add quindi selezionare Connect a Domain
Inserire il nome del dominio quindi selezionare l’opzione Import DNS records automatically. We will scan for common DNS records and import them for you.
Quindi cliccare Continue
Selezionare il piano. Nel mio caso selezionerò quello Free
In questa fase verificare che siano stai creati tutti i record DNS presenti sul provider di origine.
Quindi cliccare Continue to Activation al fondo della pagina
A questo punto sostituire sul provider i Nameservers inserendo quelli di Cloudflare e quindi:
annabel.ns.cloudflare.com
nash.ns.cloudflare.com
Trovare e disattivare l’impostazione di sicurezza DNS (DNSSEC), se è attiva. Potremo riattivarla in seguito tramite Cloudflare.
Consentire al tuo server di origine solo gli indirizzi IP di Cloudflare
Quindi cliccare I updated my nameservers
In questa schermata siamo in attesa che il registrar propaghi i nuovi nameserver
E’ in corso la verifica che il tuo dominio punti a Cloudflare.
In genere sono necessarie 1-2 ore, ma potrebbero volerci fino a 24 ore, a seconda del tuo registrar. Lo stato viene controllato periodicamente.
Cliccare check nameservers now per verificare lo stato
Al termine della propagazione dovremmo visualizzare una schermata come quella sovrastante che ci dice che il dominio ora è protetto da Cloudflare.
A questo punto sarà possibile gestire i record DNS da Cloudflare
CREAZIONE DEL TOKEN API SU CLOUDLFLARE
Dalla Dashboard di Cloudlfare
Cliccare su My Profile → API Tokens → Create Token
Utilizzare il template tipo Edit zone DNS e poi restringilo al tuo dominio.
Cliccare Use Template
Sopra un immagine che mostra le impostazioni consigliate da impostare sul template
Impostazioni consigliate del token:
Permissions
Zone / DNS / Edit
Zone / Zone / Read
Zone Resources
Include / Specific zone / tuodominio.it
Quindi cliccare su Continue to Summary
ATTENZIONE: Questo è meglio della vecchia Global API Key che Cloudflare sconsiglia in favore degli API token.
Cliccare su Create Token
Quando Cloudflare ti mostra il token copiarlo subito, conservalo in modo sicuro e non condividerlo con nessuno
CONFIGURAZIONE DI NGINX PROXY MANAGER
Aprire Nginx Proxy Manager
Cliccare su Certificates nel menù in alto quindi Add Certificate e selezionare Let’s Encrypt via DNS
A questo punto inserire i nomi di dominio corretti.
Nel campo domini inserire: *.tuodominio e tuodominio.it
In questo modo il certificato:
*.tuodominio.it copre app.tuodominio.it, home.tuodominio.it, vpn.tuodominio.it
tuodominio.it copre il dominio principale
ATTENZIONE: Ricorda che *.tuodominio.it non copre tuodominio.it
Questa è una caratteristica normale dei wildcard certificate. Il DNS-01 serve proprio a validare questo tipo di richiesta.
Impostare come Key Type: RSA 2048
Come DNS Provider impostare: Clouflare
Nella sezione Credential File Content: dns_cloudflare_api_token=IL_TUO_TOKEN
Nella sezione Propagation Seconds: impostare i secondi da attendere per la propagazione. Lasciarlo vuoto per usare la propagazione di default.
Cliccare Save
Se è andato tutto a buon fine dovremmo visualizzare una schermata come quella sovrastante con il provider di emissione del certificato e la data di scadenza.
A questo punto NPM prova a:
- chiedere il certificato a Let’s Encrypt
- creare via API su Cloudflare il record TXT _acme-challenge
- attendere la propagazione DNS
- completare la validazione DNS-01
- salvare il certificato e configurarne il rinnovo automatico
NOTA BENE: Let’s Encrypt conferma che il DNS-01 funziona creando TXT record di validazione e che è il metodo richiesto per i wildcard.
ATTENZIONE: Per capire se il record viene creato davvero:
da fuori: controlla _acme-challenge con Resolve-DnsName o nslookup
da dentro: controlla i log del container NPM
non fidarti solo della UI di Cloudflare, perché il TXT può essere temporaneo e sparire subito
ASSEGNAZIONE DEL CERTIFICATO AI PROXY HOST
Quando il certificato compare in SSL Certificates andare sul Proxy Host e:
- aprire il proxy host
- posizionarsi nella scheda SSL
- seleziona il certificato wildcard appena creato
- abilitare Force SSL, HTTP/2 Support e HSTS Enabled solo se sai di volerlo davvero
Salvare la configurazione.
Da quel momento i sottodomini coperti dal certificato useranno quel wildcard.
Se è tutto OK dovremmo visualizzare una schermata come quella sovrastante.
CONTROLLO DEL FUNZIONAMENTO DEL CERTIFICATO
Di seguito una serie di controlli rapidi per verificare che tutto funzioni.
In NPM → SSL Certificates il certificato deve risultare valido
Aprendo https://app.tuodominio.it il browser deve mostrare certificato valido
Nel certificato devono comparire i SAN:
*.tuodominio.it e tuodominio.it
ERRORI PIU’ COMUNI E COME RISOLVERLI
1) Permessi token insufficienti
Sintomo:
- errore tipo 403
- impossibilità di leggere la zone o creare il TXT
Controllare il token Cloudflare:
- Zone:DNS:Edit
- Zone:Zone:Read
- limitato alla zone corretta
2) Hai impostato solo *.tuodominio.it
Risultato:
- i sottodomini funzionano
- https://tuodominio.it non funziona
Per coprire anche il dominio base devi aggiungere anche tuodominio.it. Il wildcard da solo non basta.
3) Il dominio non usa davvero Cloudflare DNS
Sintomo:
- Cloudflare accetta il token
- ma il challenge non si completa
Se i nameserver del dominio non puntano davvero a Cloudflare, NPM può non riuscire a pubblicare il TXT dove Let’s Encrypt lo cerca.
4) Propagazione DNS o pre-check fallito
Sintomo:
- errori su TXT non trovato
Il DNS-01 dipende dalla visibilità pubblica del record TXT. Let’s Encrypt verifica via DNS pubblico, non tramite richieste HTTP al server.
Spesso basta:
- rifare la richiesta
- attendere un po’
- controllare che non ci siano problemi di permessi/token
5) Hai usato la Global API Key invece del Token
Può funzionare in alcuni flussi legacy ma Cloudflare raccomanda gli API token al posto della Global API Key.
Buone pratiche:
- usare un token limitato a una sola zone
- non usare la Global API Key
- includere sia *.tuodominio.it sia tuodominio.it
- non cancellare il certificato dopo averlo associato ai proxy host
- controllare ogni tanto che il rinnovo automatico continui a funzionare
C’è anche un aspetto di sicurezza: Let’s Encrypt segnala che nel DNS-01 le credenziali API restano sul server quindi vanno trattate con attenzione.

0 commenti