Zeigen Sie das SSL-Zertifikat einer Seite an, die sofort zu einer anderen Seite umleitet

25

Deshalb habe ich einiges gegoogelt, aber es scheint, dass mein google-fu versagt. Entschuldigung, wenn dies eine triviale und bereits beantwortete Frage ist, konnte ich nichts dazu finden

Ich versuche, eine Nichtübereinstimmung des Hostnamens eines SSL-Zertifikats zu diagnostizieren. Wenn ich die betreffende URL besuche, werde ich auf eine andere Seite mit dem richtigen SSL-Zertifikat weitergeleitet. Einige Clients melden jedoch, dass sie einen Fehler aufgrund einer Nichtübereinstimmung mit dem Hostnamen des SSL-Zertifikats erhalten. Ich gehe nur davon aus, dass auf der Umleitungsseite das falsche Zertifikat vorhanden ist und einige Clients das Umleiten zulassen, da eine neue Seite mit dem richtigen Zertifikat erstellt wird.

(Das Wie und Warum des Problems ist nicht wirklich die Frage)

Die Frage:

Von außen nach innen (auch bekannt als Kunde in der Welt): Wie würde man das Zertifikat anzeigen, das von einer Seite geliefert wurde, die automatisch auf eine andere Seite umleitet?

Robert Petz
quelle
Eine weitere nützliche Ressource ist der SSL- Servertest von Qualy's SSL Labs.
TRiG

Antworten:

35

Verwenden Sie openssl s_client, das an openssl x509 weitergeleitet wird :

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

(Fügen Sie -servername foo.example.comden Befehl s_client hinzu, wenn der Server SNI verwendet .)

Die Umleitung von stdin von / dev / null für den ersten Aufruf von openssl verhindert, dass es auf Eingaben wartet.

EEAA
quelle
2
Sie kann auch die Ausgabe an Rohr , openssl x509 -textum tatsächlich zu sehen , was in der cert des Servers ist, und die Eingabe des Anfang Umleitung opensslvon Befehl /dev/nullso der Befehl nicht hängen: openssl s_client -connect ... < /dev/null | openssl x509 -text. Suchen Sie nach dem Feld "Alternativer X509v3-Antragstellername".
Andrew Henle
@ AndrewHenle Tolle Ergänzung. Fühlen Sie sich frei, das in meine Antwort zu ändern, wenn Sie möchten.
EEAA
Arbeitete wie ein Zauber - Ich habe nur eine begrenzte Zeit mit openSSL verbracht, aber jedes Mal, wenn ich etwas im Zusammenhang mit SSL tun muss, läuft es immer wieder darauf hinaus, haha ​​... Danke für den Tipp!
Robert Petz
6
Wenn der Server SNI verwendet, sollten Sie -servername foo.example.comdie s_clientOptionen ergänzen .
Bruno
Ich sehe die Vertrauenskette in der Ausgabe nicht. Wenn ich sehen möchte, ob eine Website von VeriSign oder LetsEncrypt oder ChineseGov oder DO_NOT_TRUST_FiddlerRoot als vertrauenswürdig eingestuft wird, worauf sollte ich achten?
Carl Walsh
7

Wenn Sie in Firefox 57 die Entwicklertools öffnen und zur Registerkarte Netzwerk wechseln, gehen Sie wie folgt vor:

  1. Stellen Sie sicher, dass Persist Logsaktiviert ist
  2. Besuchen Sie die URL von Interesse
  3. Klicken Sie auf die oberste Zeile (dh auf diejenige, die der Anfrage an den gewünschten Server entspricht, die zur Umleitungsantwort geführt hat).
  4. Klicken Sie auf die SecurityRegisterkarte (halb unten, immer noch innerhalb Network)

Auf diese Weise können Sie Zertifikatinformationen wie den allgemeinen Namen des Issues, die Angaben zum Issuer, den Gültigkeitszeitraum und die Fingerabdrücke anzeigen.

Dies funktionierte für mich auf einer Site, die mit einer 301-Weiterleitung zu einer anderen HTTPS-Website reagierte. (Leider hat mir die akzeptierte Antwort nur das Zertifikat für die endgültige Zielseite gegeben.)

mpavey
quelle
Vielen Dank für eine native Browser-Methode. Hast du die -servernameOption mit ausprobiert openssl? Das kann zu einem anderen Ergebnis führen, auch wenn es derselbe Name ist.
Mwfearnley
@mwfearnley Nein! Mit habe opensslich nur kopiert und aus der Antwort eingefügt und aufgegeben, nachdem es nicht geklappt hat :) Danke für den Vorschlag.
mpavey
1

Alternativ zu den in anderen Antworten genannten separaten Programmen können Sie auch die automatische Umleitung in Ihrem Browser deaktivieren.

Die Option dazu variiert je nach Browser. Hier sind Methoden für Firefox und Chrome:

jpa
quelle
Nicht sicher, wer das abgelehnt hat?
Robert Petz
Ja, genau das wollte ich, eine vollständig im Browser integrierte Lösung.
Michael12345
1
In Chrome hat das nicht funktioniert. Ich kann den 302 in der Netzwerkablaufverfolgung sehen, aber ich kann das Zertifikat nicht anhand der Netzwerkablaufverfolgungen überprüfen. Wenn ich auf die Registerkarte "Sicherheit" klicke, zeigt Chrome stattdessen das Zertifikat der aktuellen Webseite (das Umleitungsziel) an.
Carl Walsh
Die Ablehnung ist wahrscheinlich, weil "Nur-Link" -Antworten im Laufe der Jahre dazu neigen, zu verrotten, wenn sich die Produkte ändern. Vielleicht hat diese Antwort funktioniert, bevor Chrome den Tab "Sicherheit" eingeführt hat?
Carl Walsh
1
@jpa Der Link, den Sie für Chrome angegeben haben, erläutert, wie das Netzwerkprotokoll nach einer Weiterleitung erhalten bleibt, anstatt zu verhindern, dass Chrome der Weiterleitung folgt.
mpavey