Come posso verificare se i miei certificati SSL sono stati revocati


23

La recente scoperta della vulnerabilità del cuore ha spinto le autorità di certificazione a emettere nuovamente i certificati.

Ho due certificati che sono stati generati prima che venisse scoperta la vulnerabilità del cuore. Dopo che l'emittente SSL mi ha detto di rigenerare il certificato, ho aggiornato entrambi i miei server / domini con i nuovi certificati.

Se la mia comprensione è corretta, i vecchi certificati avrebbero dovuto essere revocati dalla CA e dovrebbero essere passati al CRL (Elenco di revoche di certificati) o al database OCSP (Protocollo di stato dei certificati online), altrimenti è tecnicamente possibile che qualcuno esegua un " man in the middle attack "rigenerando i certificati dalle informazioni raccolte da certificati compromessi.

C'è un modo per verificare se i miei vecchi certificati sono arrivati ​​a CRL e OCSP. Se non lo sono c'è un modo per includerli?

AGGIORNAMENTO: La situazione è che ho già sostituito i miei certificati, tutto quello che ho sono i file .crt dei vecchi certificati, quindi usare l'URL per controllare non è davvero possibile.


Puoi controllare usando certutil, credo. Leggi qui
MichelZ,

1
Uso Ubuntu come desktop e Centos sul mio server
sridhar pandurangiah

Quindi ti incoraggio a taggare la tua domanda in quanto tale
MichelZ,

Consiglio una lettura di questo per * nix
MichelZ,

@MichelZ - Ho taggato la domanda con Ubuntu
sridhar pandurangiah

Risposte:


10

Ottieni l'URL ocsp dal tuo certificato:

$ openssl x509 -noout -ocsp_uri -in /etc/letsencrypt/archive/31337.it/cert1.pem
http://ocsp.int-x1.letsencrypt.org/
$

Invia una richiesta al server ocsp per verificare se il certificato è stato revocato o meno:

$ openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain4.pem -cert /etc/letsencrypt/archive/31337.it/cert4.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 10:00:00 2015 GMT
        Next Update: Nov  5 10:00:00 2015 GMT
$

questo è un buon certificato.

Questo è un certificato revocato:

$  openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain3.pem -cert /etc/letsencrypt/archive/31337.it/cert3.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 12:00:00 2015 GMT
        Next Update: Nov  5 12:00:00 2015 GMT
        Revocation Time: Oct 29 12:33:57 2015 GMT
$

Questo ha funzionato per me (grazie), ma ho pensato di menzionare anche che, oltre al tempo di revoca, il mio out ha mostrato anche un motivo di revoca, che è stato utile quando abbiamo contattato l'emittente cercando di capire cosa diavolo stesse succedendo il certificato.
sdek,

10

Puoi usare certutil su Windows:

Se si dispone di un certificato e si desidera verificarne la validità, eseguire il comando seguente:

certutil -f –urlfetch -verify [FilenameOfCertificate]

Ad esempio, utilizzare

certutil -f –urlfetch -verify mycertificatefile.cer

Fonte / Ulteriori informazioni: TechNet

Inoltre, assicurati di verificare con la tua CA. Solo perché rekey il certificato / ne ottieni uno nuovo, non significa che lo revochino automaticamente!


1
Per installare certutilsul server Ubuntu utilizzare il comando sudo apt-get install libnss3-tools. Ciò non è ovvio poiché la ricerca nella cache apt-get non restituisce risultati per la stringa certutil. So che il server dell'OP è CentOS, ma è possibile che anche altri amministratori di Ubuntu Server trovino utile questa domanda.
dotancohen,

La mia risposta era puramente basata su Windows . Non conosco alcuna implementazione * nix di questo. Vedi qui per una possibile soluzione * nix
MichelZ,

2
@dotancohen Anche se viene chiamato anche quel programma certutil, non è lo stesso programma di certutil.exeWindows e non viene utilizzato allo stesso modo.
Dan Getz,

1

È possibile utilizzare questo servizio SSLLabs per testare i certificati SSL, ma è necessario che siano accessibili dal web. Inoltre è possibile trovare ulteriori informazioni, poiché questo servizio fornisce alcune verifiche.


Ciò richiede che il server funzioni con il vecchio certificato. Ma dopo aver rigenerato i miei certificati non ho altro che il file .crt del vecchio certificato.
sridhar pandurangiah,

1

Se i certificati sono stati revocati tramite la CA che li ha generati, li avrebbero convertiti in OCSP e CRL.

Se desideri assicurarti che sia così, allora estrai l'URL ocsp dal certificato e quindi costruisci una richiesta ocsp a quell'URL includendo il numero di serie del certificato, l'autorità di certificazione richieda e recuperi la risposta ocsp e quindi si potrebbe analizzarlo per verificare e confermare che è effettivamente revocato.

Maggiori dettagli in questa utile pagina: http://backreference.org/2010/05/09/ocsp-verification-with-openssl/

Nota: questo richiede l'uso della libreria openssl.

Edit1: Vedo che hai aggiunto informazioni su OCSP e CRL esplicitamente dopo questa risposta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.