Introduzione

Let's Encrypt è una certification authority (CA) che automatizza gratuitamente la creazione, la validazione, il rilascio ed il rinnovo di certificati X.509 per il protocollo TLS / SSL, abilitando l'HTTPS crittografato sui server Web.

In questo tutorial, si utilizzerà Certbot per ottenere un certificato SSL gratuito per Apache su CentOS 8 e per impostare il certificato per il rinnovo automatico.

Certbot è un client automatico di facile utilizzo che recupera e distribuisce i certificati SSL / TLS per il server web.

Installare Certbot

CentOS attualmente non possiede una propria versione di Certbot nel repository, bisogna quindi utilizzare lo script certbot-auto:

sudo dnf install wget
sudo wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

Certbot-auto installa in automatico tutte le dipendenze e aggiorna il codice client.

I plugin DNS di Certbot che possono essere utilizzati per automatizzare l'ottenimento di un certificato wildcard dal server ACMEv2 di Let's Encrypt non sono ancora disponibili per CentOS 8. È possibile utilizzare questi plugin avviando Certbot nel Docker, per ulteriori informazioni leggi la documentazione ufficiale

Ottenere un certificato SSL

Il primo passo per utilizzare Let's Encrypt per ottenere un certificato SSL è installare il software Certbot sul tuo server.

sudo ./certbot-auto --apache

Attenzione, potresti riscontrare un errore simile al seguente:

Error while running apachectl configtest.

AH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:
SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty

The apache plugin is not working; there may be problems with your existing configuration.
The error was: MisconfigurationError("Error while running apachectl configtest.\n\nAH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:\nSSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty\n",)

In questo caso sarà necessario riavviare Apache:

sudo systemctl restart httpd

Quindi ripetere il comando precedente per configurare Certbot e ottenere il certificato SSL:

sudo ./certbot-auto --apache

Altrimenti potresti ottenere il certificato e successivamente configurare manualmente Apache con il seguente comando:

sudo ./certbot-auto --apache certonly

Certbot è ora pronto per l'uso.

Per saperne di più su come usare Certbot, leggi la documentazione ufficiale di Certbot.

Rinnovo automatico

I pacchetti Certbot sono dotati di un cron job che rinnoverà automaticamente i tuoi certificati prima che scadano. Poiché i certificati Let's Encrypt durano per 90 giorni, è altamente consigliato sfruttare questa funzionalità. È possibile verificare il rinnovo automatico dei certificati eseguendo questo comando:

sudo ./certbot-auto renew --dry-run

Se risulta funzionare correttamente, puoi impostare il rinnovo automatico aggiungendo un processo cron o un timer systemd che esegua questo comando:

./certbot-auto renew

Conclusione

In questa guida abbiamo visto come installazione Let's Encrypt utilizzando Certbot su CentOS 8 Linux.