Jak mogę zweryfikować certyfikaty SSL w wierszu poleceń?


Odpowiedzi:


61

Zakładając, że twoje certyfikaty są w formacie PEM, możesz:

openssl verify cert.pem

Jeśli Twój „pakiet” jest plikiem zawierającym dodatkowe certyfikaty pośrednie w formacie PEM:

openssl verify -untrusted ca-bundle cert.pem

Jeśli Twój openssl nie jest skonfigurowany do automatycznego korzystania z zainstalowanego zestawu certyfikatów głównych (np. W /etc/ssl/certs), możesz użyć -CApathlub -CAfileokreślić urząd certyfikacji.


9
Uwaga, polecenie openssl Verify jest bardziej liberalne niż można się spodziewać! Domyślnie oprócz sprawdzania podanego pliku CA, sprawdza on również wszystkie pasujące urzędy certyfikacji w katalogu certs systemu, np. / Etc / ssl / certs. Aby zapobiec takiemu zachowaniu i upewnić się, że sprawdzasz swój certyfikat CA podany przez CAfile, musisz również przekazać opcję -CApath z nieistniejącym katalogiem, np .: openssl Verify -verbose -CApath nosuchdir -CAfile cacert.pem serwer .crt
DSimon

2
Jeszcze jedno zastrzeżenie: jeśli używasz, -CApath nosuchdirkombinacja server.crt i cacert.pem musi zawierać główny urząd certyfikacji; jeśli openssl może pracować tylko z pośrednim urzędem certyfikacji z tymi plikami, będzie narzekać.
DSimon

Mówi, że nie ma takiego pliku /certs/. czy to spowoduje problem? ponieważ jestem na sobie w sytuacji, gdy mój serwer działa, curl http działa, ale https .. curl dostaje błąd. gdzie strona przestała działać.
Giorgi Gvimradze

18

Oto jedna linijka do weryfikacji łańcucha certyfikatów:

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

Nie wymaga to instalacji CA w dowolnym miejscu.

Szczegółowe informacje można znaleźć na stronie https://stackoverflow.com/questions/20409534/how-does-an-ssl-certificate-chain-bundle-work .


1
Ostrzeżenie, opcja -CAfile jest bardziej liberalna niż można się spodziewać. Szczegółowe informacje można znaleźć w moim komentarzu do zaakceptowanej odpowiedzi.
DSimon

1
@DSimon, dodałem -CApath nosuchdirto, aby odpowiedzieć. Dziękuję Ci.
Vadzim

Nie ma problemu, chętnie pomogę. :-) Jedno zastrzeżenie, które wymyśliłem po opublikowaniu mojego wcześniejszego komentarza: jeśli podany plik -CAfilesam jest tylko certyfikatem pośrednim, openssl będzie narzekać. Jest to prawidłowe zachowanie, ponieważ verifywymaga pełnego łańcucha aż do głównego urzędu certyfikacji, ale może wprowadzać w błąd.
DSimon

2
Moja wersja ( OpenSSL 1.1.1 11 Sep 2018) wymaga, aby argument -CApathbył istniejącym katalogiem.
Jake Cobb
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.