Se gestisci un sito web o un server, controllare regolarmente il tuo certificato SSL/TLS è uno di quei compiti che non puoi permetterti di saltare. Un certificato scaduto o configurato male significa avvisi del browser, fiducia compromessa e potenziali interruzioni del servizio.

OpenSSL — il toolkit open source da riga di comando usato praticamente su ogni distribuzione Linux, sui sistemi macOS e disponibile anche su Windows — ti dà accesso diretto e senza filtri ai dettagli dei certificati. Nessun browser necessario. Nessuno strumento di terze parti. Solo un terminale e pochi comandi brevi.
Questa guida illustra i comandi OpenSSL che utilizzerai più spesso: visualizzare i dettagli del certificato, verificare le date di scadenza, ispezionare server remoti, validare le catene di certificati e confermare che la chiave privata corrisponda al certificato. Ogni comando è pronto per essere copiato e incollato, con una chiara spiegazione di cosa fa.
Preferisci lavorare da browser? L’SSL Checker restituisce gli stessi dettagli del certificato: catena, scadenza, suite di cifratura e un punteggio di sicurezza, partendo semplicemente da un nome di dominio, senza bisogno di terminale, oppure puoi leggere il certificato direttamente in Chrome, Firefox, Safari o Edge. Questa guida copre tutto ciò che preferiresti fare dalla riga di comando.
Indice
- Prerequisiti: verifica la tua versione di OpenSSL
- Visualizza i dettagli completi del certificato con openssl x509
- Controlla il certificato di un server remoto con openssl s_client
- Verifica le date di scadenza del certificato
- Valida la catena di certificati con openssl verify
- Conferma che la tua chiave privata corrisponda al certificato
- Convertire tra formati di certificato
- Risoluzione degli errori comuni dei certificati
- Mantieni il controllo dei tuoi certificati
Save 10% on SSL Certificates when ordering from SSL Dragon today!
Fast issuance, strong encryption, 99.99% browser trust, dedicated support, and 25-day money-back guarantee. Coupon code: SAVE10
Prerequisiti: verifica la tua versione di OpenSSL
Prima di eseguire qualsiasi comando, verifica che OpenSSL sia installato e controlla quale versione stai usando. La tua versione determina quali protocolli e algoritmi sono disponibili.
openssl version –a
Questo restituisce il numero di versione, la data di rilascio e la directory predefinita dei certificati (OPENSSLDIR). La maggior parte dei sistemi Linux viene fornita con OpenSSL già installato. Su macOS, viene fornito con LibreSSL (un fork di OpenSSL), che gestisce gli stessi comandi.
Se sei su Windows, puoi accedere a OpenSSL tramite WSL (Windows Subsystem for Linux), Git Bash, oppure una build standalone per Windows.
Suggerimento: assicurati di usare almeno OpenSSL 1.1.1 o versioni successive. Le versioni più vecchie non supportano TLS 1.2 e TLS 1.3, richiesti dai server e dai browser moderni.
Visualizza i dettagli completi del certificato con openssl x509
Il comando openssl x509 è lo strumento principale per l’ispezione dei certificati. Legge i certificati X.509, il formato standard utilizzato da tutti i certificati SSL/TLS, e restituisce i dettagli in una forma leggibile per l’uomo.
Per visualizzare i dettagli completi di un file di certificato memorizzato localmente:
openssl x509 -in certificate.crt -text -noout
Ecco cosa fa ciascun flag:
- -in certificate.crt — Specifica il file di certificato di input. Sostituiscilo con il nome del tuo file effettivo (ad es. yourdomain.crt o server.pem).
- -text — Restituisce il certificato in formato testo leggibile invece dei dati codificati grezzi.
- -noout — Impedisce a OpenSSL di stampare il blocco PEM codificato in Base64 insieme all’output testuale.
Questo comando rivela tutto sul certificato:
- Estensioni — Inclusi i Subject Alternative Names (SAN), il Key Usage e l’Authority Information Access.
- Emittente — La Certificate Authority (CA) che lo ha firmato (ad es. DigiCert, Let’s Encrypt, Sectigo).
- Soggetto — Il dominio o l’organizzazione a cui è stato rilasciato il certificato.
- Periodo di validità — Le date “Not Before” e “Not After” che indicano quando il certificato è attivo.
- Algoritmo e dimensione della chiave pubblica — Tipicamente RSA a 2048 bit o ECDSA P-256.
- Algoritmo di firma — Solitamente sha256WithRSAEncryption per i certificati moderni.
Controlla solo l’emittente o il soggetto
Se non hai bisogno dell’output completo, puoi estrarre campi specifici:
openssl x509 -in certificate.crt -noout -issuer
openssl x509 -in certificate.crt -noout -subject
Questi comandi rapidi sono particolarmente utili quando stai scrivendo script o hai semplicemente bisogno di una conferma veloce.
Nota: OpenSSL si aspetta il formato PEM per impostazione predefinita — questi sono file di testo che iniziano con —–BEGIN CERTIFICATE—–. Se il tuo certificato è in formato DER (binario), aggiungi il flag -inform der:
openssl x509 -in certificate.der -inform der -text -noout
Controlla il certificato di un server remoto con openssl s_client
Non hai sempre il file del certificato disponibile sulla tua macchina locale. Spesso, devi ispezionare il certificato installato su un server attivo. È qui che entra in gioco openssl s_client.
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
Questo comando apre una connessione TLS verso il server sulla porta 443 (la porta HTTPS predefinita) e mostra la catena di certificati, la versione del protocollo, la suite di cifratura e i dettagli della sessione.
Il flag -servername abilita il Server Name Indication (SNI), essenziale quando il server ospita più domini sullo stesso indirizzo IP. Senza di esso, potresti ricevere il certificato sbagliato.
Premi CTRL+C per chiudere la connessione dopo aver visualizzato l’output.
Non hai un terminale a disposizione o vuoi un controllo più rapido? Il nostro SSL Checker ti permette di controllare un certificato senza OpenSSL. Inserisci il dominio e ottieni la catena, la scadenza e i dettagli sulla cifratura direttamente nel tuo browser.
Reindirizza l’output con una pipe per un risultato più chiaro
L’output grezzo di s_client è prolisso. Per estrarre solo i dettagli del certificato, reindirizzalo con una pipe verso openssl x509:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -text
L’echo | all’inizio invia un input vuoto in modo che la connessione si chiuda automaticamente. Il 2>/dev/null nasconde i messaggi di errore, dandoti un output pulito.
Puoi anche restringere il risultato a campi specifici:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -issuer -subject -dates
Questo comando è un favorito pratico tra i sysadmin. Mostra l’emittente, il soggetto e le date di validità in un solo passaggio.
Salva il certificato localmente
Se vuoi salvare il certificato remoto in un file per un’analisi più approfondita:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 > yourdomain.pem
Ora puoi eseguire qualsiasi comando openssl x509 sul file salvato.
Verifica le date di scadenza del certificato
I certificati scaduti sono una delle cause più comuni di errori SSL. OpenSSL offre diversi modi per verificare la scadenza.
Controllo rapido delle date
openssl x509 -in certificate.crt -noout -dates
Questo restituisce sia il “Not Before” (data di inizio) che il “Not After” (data di fine). Se ti serve solo la scadenza:
openssl x509 -in certificate.crt -noout -enddate
Per server remoti
Combina s_client e x509 per verificare la scadenza del certificato di un server attivo:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -enddate
Automatizza gli avvisi di scadenza con -checkend
Il flag -checkend è qualcosa che la maggior parte delle guide trascura, ma è incredibilmente utile per l’automazione. Verifica se il certificato scadrà entro un numero specificato di secondi e restituisce un codice di uscita:
openssl x509 -in certificate.crt -noout -checkend 2592000
Il valore 2592000 corrisponde a 30 giorni espressi in secondi. Se il certificato scade entro 30 giorni, il comando restituisce un codice di uscita diverso da zero e stampa un avviso. Se il certificato è ancora valido oltre quella finestra temporale, restituisce zero.
Questo lo rende facile da integrare in cron job, script di monitoraggio o pipeline CI/CD:
if ! openssl x509 -in certificate.crt -noout -checkend 2592000 > /dev/null 2>&1; then
echo "WARNING: Certificate expires within 30 days!"
fi
Perché è importante: con il CA/Browser Forum che si sta orientando verso durate dei certificati di 47 giorni entro il 2029, il monitoraggio automatizzato della scadenza non è più opzionale, è una necessità. Integrare questi controlli nella tua infrastruttura ora ti risparmierà interruzioni in futuro.
Valida la catena di certificati con openssl verify
Un certificato non funziona in isolamento. I browser e i client validano l’intera catena di certificati, una sequenza che inizia con il certificato del tuo server, passa attraverso uno o più certificati CA intermedi, e termina con un certificato CA radice attendibile.
Se la catena è interrotta o incompleta, i visitatori vedono un errore di “non attendibile” anche se il certificato stesso è valido.
Per validare un certificato rispetto al magazzino di CA attendibili del sistema:
openssl verify certificate.crt
Se restituisce certificate.crt: OK, la catena è completa e valida.
Quando i certificati intermedi sono separati
Se il tuo certificato CA intermedio si trova in un file separato (comune con molti fornitori di CA, incluso DigiCert), usa il flag -untrusted:
openssl verify -untrusted intermediate.crt certificate.crt
Il flag -untrusted indica a OpenSSL di usare il certificato intermedio fornito durante la costruzione della catena senza aggiungerlo permanentemente al magazzino di attendibilità.
Visualizza la catena completa da un server remoto
Per vedere ogni certificato nella catena da un server attivo:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -showcerts
Il flag -showcerts restituisce ogni certificato della catena in formato PEM. Questo è il comando di riferimento per diagnosticare problemi di catena, come certificati intermedi mancanti o ordine scorretto.
Preferisci un controllo visuale con un solo clic? Il nostro SSL Checker verificherà la catena di certificati per qualsiasi dominio e segnalerà automaticamente eventuali intermedi mancanti.
Conferma che la tua chiave privata corrisponda al certificato
Dopo aver installato un certificato, uno degli errori più comuni è un disallineamento della chiave privata. Il server web non si avvierà (o servirà una connessione interrotta) se la chiave privata non corrisponde alla chiave pubblica del certificato.
Ecco come verificare la corrispondenza. Entrambi i comandi estraggono il modulo, un valore matematico condiviso, e lo eseguono in hash:
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privatekey.key | openssl md5
Se gli hash MD5 sono identici, la chiave privata e il certificato formano una coppia valida. Se differiscono, qualcosa non va. Potresti avere la chiave sbagliata, oppure il certificato è stato rilasciato nuovamente con una nuova coppia di chiavi.
Puoi estendere questo controllo per includere anche la tua CSR (Certificate Signing Request):
openssl req -noout -modulus -in request.csr | openssl md5
Il controllo del modulo ti dice se i tre file appartengono insieme, ma non cosa dichiara effettivamente la CSR. Per leggere i suoi campi, esegui openssl req -in yourCSR.csr -noout -text, oppure incolla la richiesta nel nostro decodificatore CSR.
Tutti i tre elementi: certificato, chiave privata e CSR dovrebbero restituire lo stesso hash.
Non hai a disposizione una macchina con OpenSSL? Il nostro Certificate Key Matcher effettua lo stesso confronto direttamente nel tuo browser, e funziona anche per le chiavi ECDSA, dove il controllo del modulo non funziona.
Convertire tra formati di certificato
Server e piattaforme diverse richiedono formati di certificato diversi. Apache e Nginx usano PEM, mentre Windows IIS e Tomcat generalmente richiedono PKCS#12 (.pfx). Ecco le conversioni più comuni:
Da DER a PEM:
openssl x509 -inform der -in certificate.der -out certificate.pem
Da PEM a DER:
openssl x509 -outform der -in certificate.pem -out certificate.der
Da PEM a PKCS#12 (.pfx):
openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.crt -certfile ca-bundle.crt
Da PKCS#12 a PEM:
openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes
Il flag -nodes esporta la chiave privata senza crittografia tramite password. Rimuovilo se desideri un output protetto da passphrase.
Da sapere: i file di certificato con estensioni .crt, .cer e .pem possono tutti essere in formato PEM. L’estensione da sola non indica la codifica, controlla il contenuto del file. Se inizia con —–BEGIN, è PEM. Se è un contenuto binario incomprensibile, è DER.
Per una conversione occasionale su una macchina senza OpenSSL, l’SSL Converter gestisce PEM, DER, PFX e P7B direttamente nel browser e divide un PFX in certificato, catena e chiave.
Risoluzione degli errori comuni dei certificati
Quando qualcosa va storto, l’output di OpenSSL solitamente indica dove si trova il problema. Ecco un riferimento rapido per i problemi più frequenti:
“unable to get local issuer certificate”. La catena di certificati è incompleta. Il certificato intermedio manca dalla configurazione del server. Ottieni il bundle CA corretto dal tuo fornitore di certificati e configuralo insieme al certificato del server.
“certificate has expired”. Esattamente ciò che indica. La data “Not After” del certificato è trascorsa. Rinnovalo e sostituiscilo immediatamente.
“certificate signature failure”. Il certificato è stato modificato o danneggiato dopo la firma. Scaricalo nuovamente dal tuo fornitore di CA oppure fallo rilasciare di nuovo.
“key values mismatch”. La chiave privata e il certificato non corrispondono. Esegui il confronto del modulo descritto nella sezione precedente per confermarlo, quindi individua la chiave corretta oppure genera una nuova CSR.
“self-signed certificate”. OpenSSL non riesce a risalire dal certificato a una CA radice attendibile. Questo è normale per i certificati autofirmati utilizzati in ambito di sviluppo. Per la produzione, assicurati di avere un certificato rilasciato da una Certificate Authority pubblicamente attendibile.
“hostname mismatch”. Il dominio a cui ti stai collegando non corrisponde al Common Name (CN) o al Subject Alternative Name (SAN) elencato nel certificato. Controlla i SAN con:
openssl x509 -in certificate.crt -noout -ext subjectAltName
Mantieni il controllo dei tuoi certificati
Controllare i certificati con OpenSSL è un’operazione che eseguirai ripetutamente durante il ciclo di vita del certificato, durante l’installazione, dopo il rinnovo e ogni volta che qualcosa si rompe. Questi comandi sono il modo più rapido per diagnosticare i problemi e verificare che tutto sia configurato correttamente.
Per un controllo rapido senza aprire un terminale, esegui il dominio attraverso il nostro SSL Checker e ottieni il suo punteggio di sicurezza SSL insieme al certificato completo, alla catena e ai dettagli sulla cifratura in pochi secondi.
Ma i controlli manuali hanno una scalabilità limitata. Se gestisci più certificati su server diversi, hai bisogno di un processo di gestione dei certificati affidabile, specialmente considerando che la durata dei certificati continua a diminuire e il margine di errore si riduce sempre di più.
Hai bisogno di certificati SSL affidabili? SSL Dragon offre un’ampia selezione di certificati SSL/TLS provenienti dalle migliori Certificate Authority come DigiCert, Sectigo e Thawte, con prezzi competitivi, emissione rapida e assistenza dedicata. Che tu abbia bisogno di un certificato a dominio singolo o di una soluzione multi-dominio a livello aziendale, troverai la soluzione più adatta a te.
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






