Wyświetl certyfikat SSL strony, która natychmiast przekierowuje na inną

25

Więc trochę tego szukałem, ale wygląda na to, że moje google-fu mnie zawiodło - przepraszam, jeśli jest to trywialne i już udzielone pytanie, nie mogłem nic na ten temat znaleźć

Próbuję zdiagnozować niezgodność nazwy hosta certyfikatu SSL. Kiedy odwiedzam ten adres URL, przekierowuje mnie do innej strony, która ma prawidłowy certyfikat SSL. Jednak niektórzy klienci zgłaszają, że otrzymali błąd niezgodności nazwy hosta certyfikatu SSL. Moim jedynym założeniem jest to, że strona przekierowująca ma niewłaściwy certyfikat, a niektórzy klienci pozwalają mu się przesuwać, ponieważ rozwiązuje to problem z nową stroną, która ma poprawny certyfikat.

(Jak i dlaczego problem nie jest tak naprawdę pytaniem)

Pytanie:

Z zewnątrz w (inaczej jako klient na świecie) - w jaki sposób można wyświetlić certyfikat dostarczony przez stronę, która automatycznie przekierowuje na inną stronę?

Robert Petz
źródło
Innym przydatnym zasobem jest test serwera SSL przeprowadzony przez Qualy's SSL Labs.
TRiG

Odpowiedzi:

35

Użyj openssl s_client odprowadzone do openssl x509 :

$ openssl s_client -connect foo.example.com:443 < /dev/null | openssl x509 -text

(Dodaj -servername foo.example.comdo komendy s_client, jeśli serwer używa SNI .)

Przekierowanie stdin z / dev / null dla pierwszego wywołania openssl zapobiegnie zawieszeniu się oczekiwania na dane wejściowe.

EEAA
źródło
2
Można również rura wyjście do openssl x509 -textfaktycznie zobaczyć, co jest w cert serwera, i przekierować wejście początkowego opensslpolecenia z /dev/nulltak komenda nie zwisał: openssl s_client -connect ... < /dev/null | openssl x509 -text. Poszukaj pola „Alternatywna nazwa podmiotu X509v3”.
Andrew Henle,
@AndrewHenle Świetny dodatek. Jeśli chcesz, możesz to zmienić w mojej odpowiedzi.
EEAA
Działało jak urok - spędziłem tylko ograniczoną ilość czasu z openSSL, ale za każdym razem, gdy muszę zrobić coś związanego z ssl, zawsze sprowadza się to do tego haha ​​... Dzięki za wskazówkę!
Robert Petz
6
Jeśli serwer używa SNI, powinieneś dodać -servername foo.example.comdo s_clientopcji.
Bruno,
Nie widzę łańcucha zaufania w danych wyjściowych. Jeśli chcę sprawdzić, czy witryna jest zaufana przez VeriSign lub LetsEncrypt lub ChineseGov lub DO_NOT_TRUST_FiddlerRoot, czego powinienem szukać?
Carl Walsh,
7

W przeglądarce Firefox 57, jeśli otworzysz Narzędzia programistyczne i przejdziesz do karty Sieć:

  1. Upewnij się, że Persist Logsjest zaznaczone
  2. Odwiedź interesujący URL
  3. Kliknij górny wiersz (tj. Ten odpowiadający żądaniu do serwera, który Cię interesuje, co spowodowało odpowiedź przekierowania)
  4. Kliknij Securitykartę (do połowy, nadal w środku Network)

Umożliwi to przeglądanie informacji o certyfikacie, takich jak nazwa wystawcy, dane wystawcy, okres ważności i odciski palców.

To zadziałało dla mnie w witrynie, która odpowiedziała przekierowaniem 301 na inną stronę HTTPS. (Niestety zaakceptowana odpowiedź dała mi tylko certyfikat końcowej strony docelowej).

mpavey
źródło
Dzięki za natywną metodę przeglądarki. Czy wypróbowałeś -servernameopcję z openssl? To może dać inny wynik, nawet jeśli jest to ta sama nazwa.
mwfearnley
@mwfearnley Nie! Z openssl, właśnie skopiowałem i wkleiłem z odpowiedzi i poddałem się, gdy nie zadziałało :) Dzięki za sugestię.
mpavey
1

Jako alternatywę dla oddzielnych programów wymienionych w innych odpowiedziach możesz również wyłączyć automatyczne przekierowanie w przeglądarce.

Opcja wykonania tego zależy od przeglądarki, oto metody dla Firefoxa i Chrome:

jpa
źródło
Nie jesteś pewien, kto to ocenił?
Robert Petz,
Tak, właśnie tego chciałem, całkowicie w przeglądarce.
Michael12345,
1
To nie działało dla mnie w Chrome. Widzę 302 w śladzie sieci, ale nie widzę, jak sprawdzić certyfikat ze śladów sieci. Jeśli kliknę kartę Zabezpieczenia, Chrome zamiast tego pokaże mi certyfikat z bieżącej strony internetowej (cel przekierowania).
Carl Walsh,
Ta opinia jest prawdopodobnie dlatego, że odpowiedzi „tylko link” gniją z biegiem lat wraz ze zmianą produktów. Może ta odpowiedź zadziałała, zanim Chrome wprowadził kartę Zabezpieczenia?
Carl Walsh,
1
@jpa Link podany w przeglądarce Chrome wydaje się wyjaśniać, jak zachować dziennik sieci po przekierowaniu, a nie jak uniemożliwić Chrome wykonanie przekierowania.
mpavey