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

I've been building and managing websites for over 20 years, with a heavy focus on the technical side of the cybersecurity, VPN, and SaaS industries. I know how sites are built from the ground up, which means I know how to secure them. Here at SSL Dragon, I write about web architecture, encryption, and keeping your infrastructure safe.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.