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.