Tutorial sui passaggi da effettuare per configurare un certificato wildcard - per tutti i sotto livelli - di un dominio gestito da Cloudflare e online grazie al web server nginx attraverso il client acme.sh di Let’s Encrypt per sistemi Linux o Unix-like.
Per associare al dominio utilizzato un certificato wildcard TLS/SSL, l’unico metodo che Let’s Encrypt accetta è il “challenge DNS” per autenticare la proprietà del dominio. Perciò abbiamo bisogno delle API di Cloudflare per aggiungere/modificare i DNS del nostro dominio.
Prerequisiti per ottenere un certificato wildcard di Let’s Encrypt#
Di seguito vengono illustrati i passaggi da effettuare per ottenere un certificato wildcard valido da utilizzare per il dominio in nostro possesso.
Collegarsi al pannello di controllo di Cloudflare e ottenere una API key cliccando su Token API e poi su Crea token:
Successivamente cliccare su “Modifica DNS zona” –> “Usa modello":
Assicurarsi che l’autorizzazione al punto 1 sia su Modifica e che la Risorsa Zona, al punto 2, sia sul nome del dominio desiderato (in questo caso rmazzu.com e cliccare su Vai al riepilogo:
Per ultimo, cliccare su Crea token in Modifica DNS zona Riepilogo token API:
A questo punto si ottiene a schermo le API di accesso per Cloudflare. Mi raccomando, non condividere con nessuno queste token, tienile al sicuro e al segreto.
Fino adesso è stato installato nginx ed è stata ottenuta la chiave per accedere all’API di Cloudflare ma ora è giunto il momento di utilizzare il client acme.sh per ottenere il certificato per il dominio rmazzu.com.
Come primo passaggio esportiamo il CF_Token con il comando che segue:
# Esportazione della singola variabile per l'autorizzazione DNS di Cloudflare
$ export CF_Token="Tuo_Cloudflare_DNS_API_Key_Inserito_Qui"
Non è richiesto l’inserimento delle variabili CF_Account_ID e CF_Zone_ID in quanto vengono estrapolate automaticamente dal client acme.me.
Prossimo passaggio è la richiesta del certificato. Sostituire rmazzu.com con il tuo domain:
[Tue 24 May 2021 08:23:43 AM UTC] Creating domain key
[Tue 24 May 2021 08:23:43 AM UTC] The domain key is here: /root/.acme.sh/rmazzu.com_ecc/rmazzu.com.key
[Tue 24 May 2021 08:23:43 AM UTC] Multi domain='DNS:rmazzu.com,DNS:*.rmazzu.com'[Tue 24 May 2021 08:23:43 AM UTC] Getting domain auth token for each domain
[Tue 24 May 2021 08:23:44 AM UTC] Getting webroot for domain='rmazzu.com'[Tue 24 May 2021 08:23:44 AM UTC] Getting webroot for domain='*.rmazzu.com'[Tue 24 May 2021 08:23:44 AM UTC] rmazzu.com is already verified, skip dns-01.
[Tue 24 May 2021 08:23:44 AM UTC] *.rmazzu.com is already verified, skip dns-01.
[Tue 21 May 2021 08:23:44 AM UTC] Verify finished, start to sign.
[Tue 21 May 2021 08:23:44 AM UTC] Lets finalize the order, Le_OrderFinalize: https://acme-v02.api.letsencrypt.org/acme/finalize/91933311/4305449220
[Tue 24 May 2021 08:23:45 AM UTC] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/0436c4ebf2a5233d099b21e0debb665b9b11
[Tue 24 May 2021 08:41:45 AM UTC] Cert success.
-----BEGIN CERTIFICATE-----
MIIErHPPpppp990ìLkjUu8877U03AYRrHPPpppp990ìLkjUu8877U03ADQEBCwUA
MDEwMTkwODQxMjNaMBgxFjA323320u23eh81nmVyY2l0aS5iaXowdjAQBgcqhkjO
PQIBBgUrgdhyhHuyjaujUo9oiKO99kJhhKLLuYRrHPPpppp990ìLkjUu8877U03A
.....
..
RuA8fFHPPpppp990ìLkjUu8877U03AmUHPPpppp990ìLkjUu8A6Fj+BTbaLRFQqJ
HPPpppp990ìLkjUu8877U03Adddsfsdffwfa545554==
-----END CERTIFICATE-----
[Tue 24 May 2021 08:23:45 AM UTC] Your cert is in /root/.acme.sh/rmazzu.com_ecc/rmazzu.com.cer
[Tue 24 May 2021 08:23:45 AM UTC] Your cert key is in /root/.acme.sh/rmazzu.com_ecc/rmazzu.com.key
[Tue 24 May 2021 08:23:45 AM UTC] The intermediate CA cert is in /root/.acme.sh/rmazzu.com_ecc/ca.cer
[Tue 24 May 2021 08:23:45 AM UTC] And the full chain certs is there: /root/.acme.sh/rmazzu.com_ecc/fullchain.cer
A questo punto le chiavi DNS API di Cloudflare verranno salvate in /root/.acme.sh/account.conf e, per essere sicuri, controllare il contenuto del file con il seguente comando: