Generare certificato SSL Let’s Encrypt
Questa piccola guida è rivolta a chi dovesse aver bisogno di una certificato SSL completamente gratuito. Spieghiamo subito, il grosso limite sta nella durata, in pratica i certificati rilasciati da Let’s Encrypt hanno una validità di 90 giorni e quindi vanno rinnovati molto più spesso dei classici certificati a pagamento che minimo durano 1 anno, ma anche molto di più.
Requisiti:
- Server Ubuntu (i test sono stati fatti sulla versione 21.10)
- Gestione dei record DNS del dominio per cui dobbiamo generare il certificato
Per prima cosa andiamo ad aggiornare la lista dei pacchetti disponibili nel repository, per poter scaricare le ultime versioni
sudo apt-get update
Una volta aggiornato il repository, possiamo andare ad installare “Let’s Encrypt” questo pacchetto andrà ad installare anche “Certbot” che ci consentirà di generare le richieste dei certificati
sudo apt-get install letsencrypt
A questo punto siamo pronti a generare la richiesta, sotto incollerò la sintassi e poi vedremo nel dettaglio le singole parti
sudo certbot certonly --manual --preferred-challenges=dns --email it@domain.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d xyz.domain.com
–manual: indica che andremo a richiedere un nuovo certificato
–preferred-challenges=dns: indica che utilizzeremo un record DNS TXT per verificare la proprietà del dominio
–email: indica l’email su cui verranno inviati gli avvisi di scadenza ed altre eventuali info che Let’s Encrypt riterrà necessarie
–server https://acme-v02.api.letsencrypt.org/directory: è il server che genererà il certificato
–agree-tos: accettazione automatica delle condizioni
-d: nome del dominio per cui richiediamo il certificato, ad esempio: xyz.domain.com
Dopo aver confermato il comando sopra, ci viene richiesto di procedere con la verifica del record DNS, dovremo andare ad inserire il record TXT che ci viene mostrato e dopo aver atteso qualche minuto per la propagazione confermiamo e attendiamo la generazione.
Per visualizzare i certificati generati, possiamo usare il comando
sudo certbot certificates
Il risultato si presenterà con un output simile al seguente
Found the following certs:
Certificate Name: xyz.domain.com
Serial Number: seriale del certificato
Key Type: RSA
Domains: xyz.domain.com
Expiry Date: 2022-05-12 16:15:31+00:00 (VALID: 86 days)
Certificate Path: /etc/letsencrypt/live/xyz.domain.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/xyz.domain.com/privkey.pem
A questo punto non ci rimane che accedere alla directory “/etc/letsencrypt/live/xyz.domain.com” e prelevare il nostro certificato con la sua chiave privata per installarli sul server in cui ne avevamo bisogno.