Jak sprawdzić, czy moje certyfikaty SSL zostały odwołane

23

Niedawne odkrycie luki w zabezpieczeniach spowodowało, że urzędy certyfikacji ponownie wystawiły certyfikaty.

Mam dwa certyfikaty, które zostały wygenerowane przed wykryciem podatności na atak serca. Po tym, jak wystawca SSL poprosił mnie o ponowne wygenerowanie certyfikatu, zaktualizowałem oba moje serwery / domeny o nowe certyfikaty.

Jeśli moje rozumowanie jest poprawne, stare certyfikaty powinny zostać odwołane przez urząd certyfikacji i powinny dotrzeć do listy CRL (lista unieważnień certyfikatów) lub bazy danych OCSP (Online Certificate Status Protocol), w przeciwnym razie technicznie możliwe jest wykonanie „ man in the middle attack ”poprzez regenerację certyfikatów z informacji zebranych z zainfekowanych certyfikatów.

Czy istnieje sposób, aby sprawdzić, czy moje stare certyfikaty dotarły do ​​list CRL i OCSP. Jeśli nie, czy istnieje sposób, aby je uwzględnić?

AKTUALIZACJA: Sytuacja polega na tym, że już wymieniłem moje certyfikaty, mam tylko pliki .crt starych certyfikatów, więc użycie adresu URL do sprawdzenia nie jest tak naprawdę możliwe.

śridhar pandurangiah
źródło
Wierzę, że możesz to sprawdzić za pomocą certutil. Przeczytaj tutaj
MichelZ
1
Używam Ubuntu jako pulpitu i Centos na moim serwerze
sridhar pandurangiah
Następnie zachęcam do otagowania pytania jako takie
MichelZ
Polecam lekturę tego dla * nix
MichelZ
@MichelZ - otagowałem pytanie Ubuntu
sridhar pandurangiah

Odpowiedzi:

10

Uzyskaj adres URL ocsp ze swojego certyfikatu:

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

Wyślij żądanie do serwera ocsp, aby sprawdzić, czy certyfikat został unieważniony:

$ 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
$

to jest dobry certyfikat.

To jest odwołany certyfikat:

$  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
$
Szymon, Szymek
źródło
To działało dla mnie (dzięki), ale pomyślałem, że wspomnę również, że oprócz czasu odwołania, mój out również wyświetlił przyczynę odwołania, co było pomocne, gdy skontaktowaliśmy się z emitentem, próbując dowiedzieć się, o co chodzi. cert.
sdek
10

Możesz użyć certutil w systemie Windows:

Jeśli masz certyfikat i chcesz sprawdzić jego ważność, wykonaj następujące polecenie:

certutil -f –urlfetch -verify [FilenameOfCertificate]

Na przykład użyj

certutil -f –urlfetch -verify mycertificatefile.cer

Źródło / Więcej informacji: TechNet

Ponadto koniecznie skontaktuj się z urzędem certyfikacji. To, że ponownie wygenerujesz certyfikat / zdobędziesz nowy, nie oznacza, że ​​automatycznie go unieważnią!

MichelZ
źródło
1
Aby zainstalować certutilna serwerze Ubuntu, użyj polecenia sudo apt-get install libnss3-tools. Nie jest to oczywiste, ponieważ przeszukiwanie pamięci podręcznej apt-get nie zwraca żadnych wyników dla łańcucha certutil. Wiem, że serwerem OP jest CentOS, ale możliwe jest, że inni administratorzy Ubuntu Server również uznają to pytanie za pomocne.
dotancohen
Moja odpowiedź była oparta wyłącznie na systemie Windows . Nie znam żadnej * tej implementacji * nix. Zobacz tutaj możliwe * rozwiązanie nix
MichelZ
2
@dotancohen Chociaż ten program jest również wywoływany certutil, nie jest to ten sam program co certutil.exew systemie Windows i nie jest używany w ten sam sposób.
Dan Getz,
1

Możesz użyć tej usługi SSLLabs do testowania certyfikatów SSL, ale potrzebujesz ich, aby były dostępne z Internetu. Ponadto możesz znaleźć więcej informacji, ponieważ usługa ta zapewnia pewien audyt.

mak
źródło
Wymaga to, aby serwer działał ze starym certyfikatem. Ale po zregenerowaniu moich certyfikatów mam tylko plik .crt starego certyfikatu.
śridhar pandurangiah
1

Jeśli odwołałeś certyfikaty za pośrednictwem urzędu certyfikacji, który je wygenerował, trafiłyby do OCSP i list CRL.

Jeśli chcesz się upewnić, że tak jest, wyodrębnij adres ocsp z certyfikatu, a następnie utwórz żądanie ocsp do tego adresu URL, w tym numer seryjny certyfikatu, certyfikat wystawcy ca i pobierz odpowiedź ocsp, a następnie możesz przeanalizuj go, aby sprawdzić i potwierdzić, że rzeczywiście został odwołany.

Więcej szczegółów na tej użytecznej stronie: http://backreference.org/2010/05/09/ocsp-verification-with-openssl/

Uwaga: wymaga to użycia biblioteki openssl.

Edycja1: Widzę, że po tej odpowiedzi wyraźnie dodałeś informacje o OCSP i CRL.

Khanna111
źródło