bg-tutorials

Come verificare la data di scadenza del certificato SSL con OpenSSL

I certificati SSL hanno periodi di validità limitati e devono essere rinnovati regolarmente per rimanere attendibili per i browser. I certificati pubblici emessi dopo il 15 marzo 2026 sono limitati a 200 giorni, con la validità massima che scende a 100 giorni il 15 marzo 2027 e a 47 giorni il 15 marzo 2029. Sapere esattamente quando scade un certificato ti aiuta a rinnovarlo in tempo ed evitare interruzioni.

Questa guida ti mostra come controllare la scadenza di un certificato con OpenSSL: per un server live, per un file locale, e come verificare se un certificato è prossimo alla scadenza.

Risposta rapida:

Per un sito web live, esegui:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate. 

Per un file di certificato, esegui:

openssl x509 -in your_certificate.pem -noout -enddate. 

Il valore notAfter è la data di scadenza.

Metodo 1: Controllare un certificato su un server live

Questo metodo si connette a un sito web in esecuzione e legge il certificato che serve, non hai bisogno del file del certificato. Funziona per qualsiasi host raggiungibile (un dominio remoto, o localhost con la porta giusta per un server locale).

Su Linux e macOS

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -enddate

Sostituisci yourdomain.com con il tuo dominio effettivo. I comandi sono identici su macOS, poiché macOS è di tipo Unix (il suo openssl integrato è LibreSSL, che supporta queste opzioni).

Su Windows

  • Apri Prompt dei comandi o PowerShell (premi Win + R, digita cmd o powershell, e premi Invio).
  • Esegui:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>nul | openssl x509 -noout -enddate

Su Windows, usa 2>nul invece di 2>/dev/null per scartare i messaggi di errore.

Metodo 2: Controllare un certificato da un file PEM

Un file PEM è un certificato codificato in base64 che inizia con —–BEGIN CERTIFICATE—– e termina con —–END CERTIFICATE—–. Usa questo metodo quando hai il file del certificato su disco.

Su Linux e macOS

Spostati nella cartella che contiene il tuo certificato, poi leggi la sua data di scadenza (sostituisci your_certificate.pem con il nome del tuo file):

cd /path/to/your/certificate/directory
openssl x509 -in your_certificate.pem -noout -enddate

Su Windows

cd C:pathtoyourcertificatedirectory
openssl x509 -in your_certificate.pem -noout -enddate

Assicurati che OpenSSL sia installato e presente nel tuo PATH; altrimenti, specifica il percorso completo del binario openssl.exe.

Vedi entrambe le date, o controlla se un certificato scade a breve

Per vedere sia la data di emissione (notBefore) che la data di scadenza (notAfter), usa -dates invece di -enddate:

openssl x509 -in your_certificate.pem -noout -dates

Per verificare se un certificato scadrà entro una determinata finestra temporale, usa -checkend con un numero di secondi (qui, 2592000 secondi = 30 giorni):

openssl x509 -in your_certificate.pem -noout -checkend 2592000

Stampa Certificate will not expire (ed esce con stato 0) oppure Certificate will expire (stato 1) — il che lo rende ideale per script di monitoraggio e cron job.

Comprendere il comando e l’output

Prendiamo come esempio il comando per un server live e il suo output:

echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate

Output:

notAfter=Sep 15 23:59:59 2026 GMT

Ecco cosa fa ciascuna parte:

  • echo | — invia un input vuoto in modo che il comando termini senza attendere interazioni.
  • openssl s_client — apre una connessione SSL/TLS al server.
  • -servername example.com — impostazione della Server Name Indication (SNI), richiesta quando un server ospita più certificati per domini diversi.
  • -connect example.com:443 — l’host e la porta a cui connettersi (la porta 443 è la porta HTTPS standard).
  • 2>/dev/null (Linux/macOS) o 2>nul (Windows) — scarta i messaggi di errore in modo che venga mostrato solo l’output rilevante.
  • | openssl x509 -noout -enddate — inoltra il certificato allo strumento x509; -noout sopprime il dump PEM e -enddate stampa solo la data di scadenza.
  • notAfter=… — la data e l’ora in cui il certificato cessa di essere valido.

Automatizzalo: smetti di tenere traccia delle date manualmente

Invece di controllare manualmente le date di scadenza, soprattutto man mano che i periodi di validità si riducono verso i 47 giorni, puoi usare ACME come Certificate-as-a-Service (CaaS). Questo gestisce la validazione del dominio, installa i certificati e li rinnova automaticamente prima della scadenza, così il tuo sito rimane attendibile senza intervento manuale.

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.