Come posso verificare i certificati SSL dalla riga di comando?


52

Sto cercando di convalidare / verificare che la chiave rsa, il ca-bundle e il certificato memorizzati qui siano corretti. Non vengono serviti da un server web. Come posso verificarli?


Guarda la openssl x509sezione manuale.
alex

Il manuale di verifica OpenSSL può aiutarti qui. Inoltre, vedere questa pagina contiene alcuni esempi eccellenti.
Stefan Lasiewski,

Risposte:


61

Supponendo che i certificati siano in formato PEM, puoi fare:

openssl verify cert.pem

Se il "ca-bundle" è un file contenente certificati intermedi aggiuntivi in ​​formato PEM:

openssl verify -untrusted ca-bundle cert.pem

Se openssl non è configurato per utilizzare automaticamente un set installato di certificati radice (ad es. In /etc/ssl/certs), è possibile utilizzare -CApatho -CAfilespecificare la CA.


9
Attenzione, il comando di verifica openssl è più permissivo di quanto ci si possa aspettare! Per impostazione predefinita, oltre a controllare il file CA specificato, controlla anche eventuali CA corrispondenti nella directory certs del sistema, ad esempio / etc / ssl / certs. Per prevenire questo comportamento e assicurarsi che si stia verificando il tuo particolare certificato CA fornito da CAfile, è necessario anche passare un'opzione -CApath con una directory inesistente, ad esempio: openssl verifica -verbose -CApath nosuchdir -CAfile cacert.pem server .crt
DSimon

2
Un ulteriore avvertimento: se si utilizza, -CApath nosuchdirla combinazione di server.crt e cacert.pem deve includere la CA principale; se openssl può funzionare solo con una CA intermedia con quei file, allora si lamenterà.
DSimon

Dice che non esiste tale file /certs/. questo causerà un problema? perché sono impilato in una situazione in cui il mio server funziona, http curl funziona, ma https .. curl ottiene un errore. dove il sito web ha smesso di funzionare.
Giorgi Gvimradze,

18

Ecco una riga per verificare una catena di certificati:

openssl verify -verbose -x509_strict -CAfile ca.pem -CApath nosuchdir cert_chain.pem

Ciò non richiede l'installazione di CA da nessuna parte.

Vedi https://stackoverflow.com/questions/20409534/how-does-an-ssl-certificate-chain-bundle-work per i dettagli.


1
Attenzione, l'opzione -CAfile è più permissiva di quanto ti aspetti. Vedi il mio commento sulla risposta accettata per i dettagli.
DSimon,

1
@DSimon, l'ho aggiunto -CApath nosuchdirper rispondere. Grazie.
Vadzim,

Nessun problema, felice di aiutarti. :-) Un avvertimento che ho capito dopo aver pubblicato il mio commento precedente: se il file specificato con -CAfileè esso stesso solo un certificato intermedio, allora openssl si lamenterà. Questo è un comportamento corretto, poiché verifyrichiede una catena completa fino a una CA principale, ma può essere fuorviante.
DSimon

2
La mia versione ( OpenSSL 1.1.1 11 Sep 2018) richiede che l'argomento -CApathsia una directory esistente.
Jake Cobb,
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.