Come ottenere i certificati SSL Let's Encrypt utilizzando la convalida DNS Certbot CloudFlare

Come Ottenere I Certificati Ssl Let S Encrypt Utilizzando La Convalida Dns Certbot Cloudflare



Certbot è un client ACME per l'autorità di certificazione (CA) Let's Encrypt. Viene utilizzato per generare un certificato SSL Let's Encrypt e rinnovarlo automaticamente. Per impostazione predefinita, Certbot utilizza la sfida Let's Encrypt HTTP-01 per verificare la proprietà del dominio ed emettere un certificato SSL per il dominio. Ma la sfida HTTP-01 non funzionerà a meno che tu non abbia un indirizzo IP pubblico e il tuo computer sia accessibile da Internet. Quindi, se desideri utilizzare i certificati Let’s Encrypt SSL per la tua rete domestica o privata, devi invece utilizzare la sfida DNS-01. Quando viene utilizzata la sfida DNS-01, Let's Encrypt verifica la proprietà del dominio utilizzando il server DNS del dominio. Quindi funziona anche per le reti private.

Per una spiegazione dettagliata su come funziona la sfida Let's Encrypt DNS-01 (o convalida DNS), leggi l'articolo intitolato Che cos'è la sfida Let's Encrypt DNS-01 e come utilizzarla per ottenere i certificati SSL.

In questo articolo, ti mostreremo come utilizzare la convalida DNS Let's Encrypt per ottenere un certificato SSL per il tuo nome di dominio utilizzando il plug-in DNS Certbot e Certbot CloudFlare.







Argomento dei contenuti:

  1. Gestire il tuo dominio con CloudFlare DNS
  2. Installazione del plugin Certbot e Certbot CloudFlare su Ubuntu/Debian
  3. Installazione del plugin Certbot e Certbot CloudFlare su Fedora
  4. Installazione del plugin Certbot e Certbot CloudFlare su RHEL/AlmaLinux/Rocky Linux/CentOS Stream
  5. Verifica se Certbot e il plugin Certbot CloudFlare sono installati correttamente
  6. Generazione di un token API CloudFlare
  7. Archiviazione sicura del token API CloudFlare sul computer/server
  8. Generazione di un certificato SSL utilizzando la convalida DNS Certbot CloudFlare
  9. Elenco dei certificati SSL Let's Encrypt utilizzando Certbot
  10. Rinnovare i certificati SSL Let's Encrypt utilizzando Certbot
  11. Conclusione
  12. Riferimenti

Gestire il tuo dominio con CloudFlare DNS

Per ottenere un certificato SSL Let's Encrypt utilizzando la convalida DNS CloudFlare, devi disporre di un account CloudFlare e il tuo dominio deve utilizzare il DNS CloudFlare. Puoi crea un account CloudFlare gratuitamente e anche il servizio DNS CloudFlare è gratuito.



Per gestire il tuo dominio con CloudFlare DNS, puoi effettuare una delle seguenti operazioni:



  • Registra il tuo dominio da CloudFlare
  • Trasferisci il tuo dominio su CloudFlare
  • Cambia il server dei nomi DNS del tuo nome di dominio nel server dei nomi DNS CloudFlare dalla dashboard del tuo registrar di domini

Non è necessario acquistare un dominio da CloudFlare o trasferire un dominio su CloudFlare per gestirlo con il servizio DNS CloudFlare. Puoi semplicemente cambiare il nameserver del tuo dominio nel nameserver DNS CloudFlare dalla dashboard del tuo registrar di dominio (da cui hai acquistato il dominio) e gestire il tuo dominio da CloudFlare. Per ulteriori informazioni su come modificare il nameserver del tuo dominio nel nameserver DNS CloudFlare, leggi questo articolo.





Installazione del plugin Certbot e Certbot CloudFlare su Ubuntu/Debian

I plugin Certbot e Certbot CloudFlare sono disponibili nel repository ufficiale dei pacchetti di Ubuntu/Debian. Quindi puoi installarli su Ubuntu/Debian molto facilmente.

Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:



$ sudo aggiornamento adeguato

  Uno screenshot di una descrizione del computer generata automaticamente

Per installare il plugin DNS Certbot e Certbot CloudFlare, esegui il seguente comando:

$ sudo adatto installare certbot python3-certbot-dns-cloudflare

Per confermare l'installazione, premere “Y” e poi premere .

È in corso l'installazione dei plug-in DNS Certbot e Certbot CloudFlare. Ci vuole un po' di tempo per completarlo.

A questo punto dovrebbero essere installati il ​​plugin DNS Certbot e Certbot CloudFlare.

Installazione del plugin Certbot e Certbot CloudFlare su Fedora

I plugin Certbot e Certbot CloudFlare sono disponibili nel repository ufficiale dei pacchetti di Fedora e possono essere installati su Fedora molto facilmente.

Innanzitutto, aggiorna il database dei pacchetti DNF con il seguente comando:

$ sudo dnf makecache

  Uno screenshot di una descrizione del computer generata automaticamente

Per installare il plugin DNS Certbot e Certbot CloudFlare su Fedora, esegui il seguente comando:

$ sudo dnf installare certbot python3-certbot-dns-cloudflare

Per confermare l'installazione, premere “Y” e poi premere .

  Uno screenshot di una descrizione del computer generata automaticamente

È in corso l'installazione dei plug-in DNS Certbot e Certbot CloudFlare. Ci vuole un po' di tempo per completarlo.

  Uno screenshot di un programma per computer Descrizione generata automaticamente

A questo punto, i plugin DNS Certbot e Certbot CloudFlare dovrebbero essere installati su Fedora.

  Uno screenshot di una descrizione del computer generata automaticamente

Installazione del plugin Certbot e Certbot CloudFlare su RHEL/AlmaLinux/Rocky Linux/CentOS Stream

Il plug-in DNS Certbot CloudFlare non è disponibile nei repository ufficiali dei pacchetti di RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Il plug-in DNS Certbot CloudFlare è disponibile nel repository del pacchetto EPEL. È possibile abilitare il repository di pacchetti EPEL su RHEL/AlmaLinux/Rocky Linux/CentOS Stream e installare il plug-in DNS Certbot CloudFlare da lì.

Una volta abilitato il repository dei pacchetti EPEL, aggiorna la cache del database DNF con il seguente comando:

$ sudo dnf makecache

  Uno screenshot di una descrizione del computer generata automaticamente

Quindi, installa il plugin DNS Certbot e Certbot CloudFlare sul tuo sistema RHEL/AlmaLinux/Rocky Linux/CentOS Stream con il seguente comando:

$ sudo dnf installare certbot python3-certbot-dns-cloudflare

Per confermare l'installazione, premere “Y” e poi premere .

  Uno screenshot di una descrizione del computer generata automaticamente

È in corso l'installazione dei plug-in DNS Certbot e Certbot CloudFlare. Ci vuole un po' di tempo per completarlo.

  Uno screenshot di una descrizione del computer generata automaticamente

Per accettare la chiave GPG del repository EPEL, premere 'Y' e quindi premere .

  Uno screenshot di una descrizione del computer generata automaticamente

A questo punto dovrebbero essere installati il ​​plugin DNS Certbot e Certbot CloudFlare.

  Uno screenshot di una descrizione del computer generata automaticamente

Verifica se Certbot e il plugin Certbot CloudFlare sono installati correttamente

Per verificare se Certbot è installato sul tuo computer, esegui il comando seguente:

$ cerbot --versione

Se Certbot è installato, il comando dovrebbe stampare il numero di versione del Certbot installato sul tuo computer.

Come puoi vedere, abbiamo Certbot 2.1.0 installato sulla nostra macchina Debian.

  Uno screenshot di una descrizione del computer generata automaticamente

Per verificare se il plug-in DNS Certbot CloudFlare è installato sul tuo computer, esegui il comando seguente:

$ sudo plugin di Certbot

Se è installato il plug-in DNS Certbot CloudFlare, dovresti trovare 'dns-cloudflare' nell'elenco dei plug-in, come indicato nello screenshot seguente:

  Uno screenshot di una descrizione del computer generata automaticamente

Generazione di un token API CloudFlare

Per verificare la proprietà del dominio, Certbot deve aggiungere un record TXT sul dominio gestito dal server DNS CloudFlare. Per questo, Certbot ha bisogno dell'accesso al token API CloudFlare. Puoi creare un token API per il tuo dominio dalla dashboard di CloudFlare.

Innanzitutto, accedi al tuo account CloudFlare. Quindi, fai clic sull'icona del tuo profilo

> Il mio profilo dall'angolo in alto a destra della pagina.

Passare alla sezione 'Token API'. [1] e clicca su “Crea token” [2] .

  Uno screenshot di una descrizione del computer generata automaticamente

Fare clic su 'Utilizza modello' dalla sezione 'Modifica DNS di zona'.

  Uno screenshot di una descrizione del computer generata automaticamente

Dalla sezione “Autorizzazione”, consenti l'autorizzazione “Modifica” a “Zona DNS” selezionando le opzioni contrassegnate dai menu a discesa.

  Uno screenshot di una descrizione del computer generata automaticamente

Se gestisci più domini con CloudFlare, puoi consentire la modifica di una 'Zona specifica' dalla sezione 'Risorsa zona'. Consentire a un token API di modificare solo una singola zona è più sicuro che consentire al token API di modificare tutte le zone. Questo perché se il token API viene compromesso, la superficie di attacco sarà più piccola e verranno arrecati meno danni.

  Uno screenshot di una descrizione del computer generata automaticamente

Se desideri utilizzare una singola chiave API per modificare tutti i tuoi domini gestiti da CloudFlare, seleziona 'Tutte le zone' dalla sezione 'Risorsa zona'.

  Uno screenshot di una descrizione del computer generata automaticamente

Una volta terminata la configurazione del token API, fai clic su 'Continua al riepilogo'.

  Uno screenshot di una descrizione del computer generata automaticamente

Verrà visualizzato un riepilogo delle azioni che puoi eseguire sui tuoi domini gestiti da CloudFlare con il token API. Fare clic su 'Crea token'.

  Uno screenshot di una descrizione del computer generata automaticamente

Dovrebbe essere creato un token API. Copia il token API in un posto sicuro in modo da non perderlo. Una volta lasciata questa pagina, non potrai più trovare questo token API. Devi generare un nuovo token API nel caso lo perdi:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  Uno screenshot di una descrizione del computer generata automaticamente

Archiviazione sicura del token API CloudFlare sul computer/server

Certbot deve utilizzare il token API CloudFlare per aggiungere un nuovo record TXT per il tuo dominio nel server DNS CloudFlare. Pertanto, devi archiviare il token API CloudFlare sul tuo computer/server. Memorizzare il token API senza garantire le autorizzazioni di accesso ai file adeguate può consentire ad altri programmi/utenti di accedere al token API. Questo non è quello che vuoi per motivi di sicurezza. In questa sezione, ti mostreremo come archiviare in modo sicuro il token API CloudFlare sul filesystem.

Innanzitutto, crea una directory (ad esempio ~/.secrets/certbot) in cui desideri archiviare la chiave API CloudFlare come segue:

$ mkdir -pv ~ / .segreti / cerbot

  Uno screenshot di una descrizione del computer generata automaticamente

Crea un file “cloudflare.ini” nella directory appena creata (ad esempio ~/.secrets/certbot) e aprilo con il tuo editor di testo preferito (ad esempio nano) come segue:

$ nano ~ / .segreti / cerbot / cloudflare.ini

Digitare la riga seguente nel file “cloudflare.ini” e premere + X seguito da “Y” e per salvarlo (se stai utilizzando l'editor di testo nano).

dns_cloudflare_api_token = < il tuo token API cloudflare >

  Uno screenshot di una descrizione del computer generata automaticamente

Per garantire un'autorizzazione di accesso adeguata per il file 'cloudflare.ini', eseguire i seguenti comandi per assicurarsi che solo l'utente root abbia accesso in lettura e scrittura al file:

$ sudo chown radice:radice ~ / .segreti / cerbot / cloudflare.ini

$ sudo chmod 06:00 ~ / .segreti / cerbot / cloudflare.ini

Come puoi vedere, solo l'utente root ha i permessi di lettura e scrittura sul file “cloudflare.ini”.

$ l -sx ~ / .segreti / cerbot / cloudflare.ini

Altri utenti che tentano di leggere il file 'cloudflare.ini' riceveranno un messaggio di errore 'Autorizzazione negata'.

$ gatto ~ / .segreti / cerbot / cloudflare.ini

  Schermata di una descrizione del computer generata automaticamente

Generazione di un certificato SSL utilizzando la convalida DNS Certbot CloudFlare

Per generare un certificato SSL Let's Encrypt per il nome di dominio con caratteri jolly '*.nodekite.com' utilizzando la convalida DNS CloudFlare, eseguire il comando cerbot come segue:

$ sudo certibot certamente --dns-cloudflare --dns-cloudflare-credentials ~ / .segreti / cerbot / cloudflare.ini -D * .nodekite.com

Per generare un certificato SSL Let's Encrypt per i nomi di dominio “nodekite.com” e “www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows:

$ sudo certibot certamente --dns-cloudflare --dns-cloudflare-credentials ~ / .segreti / cerbot / cloudflare.ini -D www.nodekite.com -D nodekite.com

Se le modifiche DNS impiegano molto tempo per propagarsi ai server dei nomi DNS più diffusi in tutto il mondo, puoi utilizzare l'opzione “–dns-cloudflare-propagation-seconds” di Certbot per impostare il numero di secondi che vuoi che Certbot attenda prima della convalida DNS viene eseguita.

$ sudo certibot certamente --dns-cloudflare --dns-cloudflare-credentials ~ / .segreti / cerbot / cloudflare.ini --dns-cloudflare-propagazione-secondi 60 -D * .nodekite.com

Una volta eseguito il comando Certbot, ti verrà chiesto di digitare il tuo indirizzo email. Inserisci il tuo indirizzo email e premi continuare.

Premere 'Y' e quindi premere di accettare i “Termini di servizio” di Let's Encrypt.

  Uno screenshot di una descrizione del computer generata automaticamente

Premere 'Y' e quindi premere .

  Uno screenshot di un programma per computer Descrizione generata automaticamente

È stato emesso un certificato SSL Let's Encrypt. Ci vuole un po' di tempo per completarlo.

  Uno screenshot di un errore del computer Descrizione generata automaticamente

A questo punto viene emesso il certificato SSL Let’s Encrypt. Dovrebbe essere visualizzato il percorso completo in cui vengono salvati i file del certificato SSL. Dovrebbe essere visualizzata anche la data di scadenza del certificato SSL.

  Uno screenshot di una descrizione del computer generata automaticamente

Elenco dei certificati SSL Let's Encrypt utilizzando Certbot

Puoi elencare tutti i certificati Let's Encrypt SSL che hai generato utilizzando Certbot con il seguente comando:

$ sudo certificati certibot

Come puoi vedere, è elencato il certificato SSL Let's Encrypt generato per il dominio 'nodekite.com'. [1] . Viene emesso un certificato SSL con carattere jolly per 'nodekite.com' [2] nome del dominio. La data di scadenza del certificato è 2024-03-20 (valido per 89 giorni) [3] . Qui sono elencati anche il certificato e il percorso della chiave privata [4] .

  Uno screenshot di una descrizione del computer generata automaticamente

Certbot memorizza tutti i certificati SSL che hai generato per i tuoi domini nella directory “/etc/letsencrypt/live” nella rispettiva cartella.

$ sudo l -Rlh / eccetera / letsencrypt / vivere /

  Uno screenshot di una descrizione del computer generata automaticamente

Rinnovare i certificati SSL Let's Encrypt utilizzando Certbot

Certbot rinnova automaticamente tutti i certificati Let's Encrypt SSL che hai generato utilizzando la convalida DNS CloudFlare.

Per verificare se la funzionalità di rinnovo automatico dei certificati Let's Encrypt SSL funziona, esegui il comando seguente:

$ sudo rinnovare il cerbot --funzionamento a secco

L'azione di rinnovo automatico viene simulata per ciascuno dei certificati SSL Let's Encrypt che hai generato.

  Uno screenshot di una descrizione del computer generata automaticamente

Se i test hanno esito positivo, riceverai le congratulazioni. Un test riuscito significa che i certificati SSL verranno rinnovati automaticamente prima della scadenza. Non dovrai fare nient'altro.

  Uno screenshot di una descrizione del computer generata automaticamente

Affinché la funzione di rinnovo automatico di Certbot funzioni, il timer di sistema 'cerbot.timer' deve essere abilitato e attivo sul tuo computer/server.

Puoi verificare se il timer systemd “cerbot.timer” è abilitato e attivo con il seguente comando:

$ sudo stato systemctl certbot.timer

Come puoi vedere, il timer systemd “certbot.timer” è abilitato (si avvia automaticamente all'avvio) [1] e attivo [2] . Certbot verifica se è necessario rinnovare un certificato SSL dopo soli 11 minuti (secondo lo screenshot seguente) e rinnova i certificati SSL che stanno per scadere [3] .

  Uno screenshot di una descrizione del computer generata automaticamente

Per verificare manualmente se qualche certificato SSL sta per scadere e rinnovare i certificati SSL in scadenza, esegui il comando seguente:

$ sudo rinnovare il cerbot

Nel nostro caso, nessun certificato SSL sta per scadere. Pertanto, Certbot non ha tentato di rinnovare alcun certificato SSL.

Per forzare Certbot a rinnovare il certificato SSL di un dominio specifico (diciamo *.nodekite.com), esegui il seguente comando:

$ sudo certibot certamente --rinnovamento forzato -D * .nodekite.com

Premere '1' e premere per selezionare la prima opzione (per la convalida DNS utilizzando CloudFlare DNS).

  Uno screenshot di una descrizione del computer generata automaticamente

Il certificato SSL dovrebbe essere rinnovato.

Conclusione

Per ottenere un certificato SSL Let's Encrypt utilizzando la convalida DNS CloudFlare utilizzando Certbot, è necessario accedere al token API CloudFlare. In questo articolo, ti abbiamo mostrato come creare un token API CloudFlare per il tuo dominio e archiviarlo in modo sicuro sul tuo computer/server in modo che tu possa accedervi con Certbot quando necessario. Ti abbiamo anche mostrato come installare Certbot e il plugin DNS Certbot CloudFlare sulle distribuzioni Linux più popolari. Ti abbiamo mostrato come generare certificati SSL Let's Encrypt con caratteri jolly e certificati SSL per singoli domini utilizzando la convalida DNS Certbot e CloudFlare. Infine, ti abbiamo mostrato come rinnovare i certificati Let's Encrypt SSL utilizzando Certbot in modo automatico e manuale.

Riferimenti: