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.