bg-tutorials

Come installare un certificato SSL ACME su Apache e NGINX

Se gestisci un server web, proteggerlo con HTTPS è uno standard di base. Grazie al protocollo ACME (Automated Certificate Management Environment), puoi automatizzare l’emissione e il rinnovo dei certificati SSL attraverso strumenti come Certbot.

ACME SSL su Apache e Nginx

In questa guida scoprirai come installare un certificato ACME su Apache e NGINX utilizzando Certbot su diverse distribuzioni Linux. Tratteremo i sistemi basati su Debian e RHEL, includeremo chiarimenti dove necessario e ti guideremo attraverso tutto, dall’installazione al rinnovo automatico.


Prima di iniziare

Prima di iniziare, controlla che:

  • Hai l’accesso sudo o root al tuo server
  • Il nome del tuo dominio punta all’indirizzo IP pubblico del tuo server tramite il DNS.
  • Le porte 80 e 443 sono aperte nel firewall o nel gruppo di sicurezza del cloud provider.
  • Il tuo sistema è aggiornato e supportato

Passo 1 – Installare Certbot sul tuo sistema operativo

Certbot è il client ACME che utilizzeremo per richiedere e rinnovare i certificati SSL. Vediamo le istruzioni di configurazione per ogni sistema operativo supportato. Scegli quello che corrisponde al tuo server.

Edizioni Ubuntu LTS con APT

Aggiorna i pacchetti e installa Certbot con il plugin del tuo server web preferito:

Apache:

sudo apt update
sudo apt install certbot python3-certbot-apache

NGINX:

sudo apt update
sudo apt install certbot python3-certbot-nginx

Sistemi Debian con supporto APT

Stesso processo di Ubuntu:

sudo apt update
sudo apt install certbot python3-certbot-apache # for Apache
sudo apt install certbot python3-certbot-nginx # for NGINX

Sui sistemi Debian, l’installazione di Certbot tramite APT è l’opzione più semplice. Se preferisci utilizzare Snap (per la versione più recente), scorri la sezione Snap qui sotto.

AlmaLinux o Rocky Linux (compatibile con RHEL)

Abilita prima il repository EPEL:

sudo dnf install epel-release
sudo dnf update

Quindi installa Certbot con il plugin che preferisci:

Apache:

sudo dnf install certbot python3-certbot-apache

NGINX:

sudo dnf install certbot python3-certbot-nginx

Alternativa: Installare Certbot tramite Snap (tutti i sistemi)

Se vuoi ottenere l’ultima versione direttamente dalla fonte, usa Snap.

1. Installa Snap (se non è già installato):

sudo apt install snapd # Ubuntu/Debian
sudo dnf install snapd # AlmaLinux/Rocky

2. Installa e collega Certbot:

sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Opzionale: installare Certbot con pip (per configurazioni personalizzate)

Questo metodo è destinato agli utenti avanzati o agli ambienti personalizzati in cui i pacchetti Snap o OS non sono disponibili. Dovresti usarlo solo se:

  • Stai eseguendo Certbot in un ambiente virtuale
  • Stai lavorando con contenitori minimi
  • Il tuo sistema operativo non supporta snapd, apt o dnf in maniera pulita

Per installare Certbot utilizzando pip:

python3 -m pip install --upgrade certbot

Questo installa il nucleo dello strumento Certbot, ma non imposta il rinnovo automatico e non installa i plugin Apache o NGINX. Dovrai configurare tutto manualmente

Se non sei sicuro di cosa significhi, torna indietro e usa le istruzioni APT, DNF o Snap.

Puoi anche installare i plugin (come quello di NGINX) utilizzando pip:

python3 -m pip install certbot-nginx

Usa pip solo se l’ambiente del tuo sistema richiede un controllo o un isolamento totale.


Passo 2 – Richiedere e installare il certificato ACME

Esistono due approcci principali: completamente automatizzato o specifico per il fornitore, utilizzando le credenziali EAB (External Account Binding). Entrambi sono trattati di seguito.

Opzione A: Completamente automatizzata (ACME standard)

Lascia che Certbot gestisca tutto: richiesta, verifica, installazione e ricarica la configurazione del tuo server.

Apache:

sudo certbot --apache

NGINX:

sudo certbot --nginx

Ti verrà chiesto:

  • Quali domini proteggere
  • Se reindirizzare tutto il traffico HTTP a HTTPS
  • Il tuo indirizzo e-mail per i promemoria del rinnovo

Certbot si occupa della convalida e della configurazione del server web dietro le quinte.

Opzione B: Utilizzare un fornitore ACME esterno (ad es. Sectigo) con EAB

Se il tuo provider richiede il binding dell’account esterno, usa questo metodo:

sudo certbot --nginx \
--non-interactive \
--agree-tos \
--email [email protected] \
--server https://acme.sectigo.com/v2/DV \
--eab-kid YOUR_EAB_KID \
--eab-hmac-key YOUR_EAB_HMAC_KEY \
--domain example.com \
--domain www.example.com \
--cert-name my-website-cert

Sostituisci --nginx con --apache per la configurazione di Apache.

Riceverai --eab-kid e --eab-hmac-key dal tuo fornitore di certificati quando registrerai un account ACME.

Opzione C: Utilizzare Certbot in modalità manuale

Se non vuoi che Certbot modifichi la configurazione del tuo server web o se stai utilizzando una configurazione personalizzata, puoi richiedere un certificato manualmente.

Ecco come fare utilizzando il metodo webroot:

sudo certbot certonly --webroot \
-w /var/www/html \
-d example.com \
-d www.example.com \
--email [email protected] \
--agree-tos \
--non-interactive

  • –certonly dice a Certbot di rilasciare il certificato ma non di installarlo
  • -w specifica la directory principale del tuo sito web (deve essere accessibile pubblicamente attraverso la porta 80)

Dopo l’emissione, configura manualmente il tuo server web con i file del certificato che si trovano in:

/etc/letsencrypt/live/yourdomain.com/

Nota: Questo percorso viene utilizzato indipendentemente dal provider ACME scelto, a meno che non si sovrascriva la directory di archiviazione utilizzando i flag avanzati (–config-dir, –work-dir).

Assicurati di ricaricare il server web dopo aver applicato i percorsi dei certificati alla configurazione.


Passo 3 – Verifica che tutto funzioni

Visita il tuo dominio in un browser. Dovresti vedere il lucchetto sicuro o semplicemente il caricamento della pagina con successo su Chrome. Per verificare che il server sia in funzione:

sudo systemctl status apache2 # Debian/Ubuntu (Apache)
sudo systemctl status httpd # AlmaLinux/Rocky (Apache)
sudo systemctl status nginx # All systems (NGINX)

E per controllare il certificato dal terminale:

openssl s_client -connect yourdomain.com:443

Cerca le date valide e il nome della CA del tuo fornitore nell’output.


Passo 4 – Impostare il rinnovo automatico

Il protocollo ACME supporta il rinnovo automatico dei certificati e Certbot è progettato per gestirlo senza problemi attraverso un timer systemd o un cron job integrato. Tuttavia, il comportamento del rinnovo dipende dal tuo fornitore di certificati:

Le CA gratuite (come Let’s Encrypt) rilasciano certificati validi per 90 giorni e supportano frequenti controlli di rinnovo.

Le CA commerciali (come Sectigo o Digicert) spesso rilasciano certificati validi per 1 anno tramite ACME, ma seguono comunque il processo di rinnovo di ACME. Certbot gestisce automaticamente anche questi, ma con minore frequenza.

Controlla che il rinnovo sia programmato

Certbot imposta un timer di sistema o cron job per impostazione predefinita. Puoi confermare che è attivo con:

systemctl list-timers | grep certbot

In questo modo Certbot controlla regolarmente i tuoi certificati (in genere due volte al giorno) e li rinnova solo quando rientrano nella finestra di rinnovo (in genere 30 giorni prima della scadenza).


Parole finali

Certbot e il protocollo ACME rendono semplice la gestione dell’SSL. Questa guida ti fornisce tutto ciò che ti serve per installare un certificato ACME su Apache e NGINX con rinnovo automatico, convalida chiara e controllo completo quando necessario.

Risparmia il 10% sui certificati SSL ordinando oggi stesso da SSL Dragon!

Emissione rapida, crittografia avanzata, affidabilità del browser al 99,99%, assistenza dedicata e garanzia di rimborso entro 25 giorni. Codice coupon: SAVE10

Un'immagine dettagliata di un drago in volo
Scritto da

Scrittore di contenuti con esperienza, specializzato in certificati SSL. Trasforma intricati argomenti di cybersicurezza in contenuti chiari e coinvolgenti. Contribuisci a migliorare la sicurezza digitale attraverso narrazioni d'impatto.