Warum erzeugt https://gmail.com/ keinen SSL-Fehler, wenn ein ungültiges Zertifikat verwendet wird?

Warum erzeugt https://gmail.com/ keinen SSL-Fehler, wenn ein ungültiges Zertifikat verwendet wird?

Es sieht aus wiehttps://gmail.comverwendet ein SSL-Zertifikat, das für den Hostnamen gilt mail.google.com. Da der Hostname des SSL-Zertifikats nicht mit der Browser-URL übereinstimmt, warum funktioniert das? Ich sollte stattdessen eine Warnung erhalten!

Ich habe es mit Firefox und Chromium getestet (es sieht aus wievorher hat es nicht funktioniert).

Ich habe das Zertifikat mit dem folgenden Befehl geprüft: echo | openssl s_client -connect gmail.com:443Er gibt Folgendes aus:

Certificate chain
 0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com

Antwort1

gmail.com verwendet ein gutes Zertifikat, aber der Server, mit dem Sie sich verbinden, verwendetServernamenanzeigeum virtuelle Hosts auf einer einzigen Adresse+Port auszuführen. Damit dies funktioniert, muss der Client dem Server mitteilen, nach welchem ​​virtuellen Host er sucht, bevor die SSL/TLS-Aushandlung erfolgt. Firefox und Chromium (und andere Clients ähnlicher Größe) tun dies automatisch.

Um das gültige Zertifikat mit zu erhalten openssl s_client, müssen Sie die -servernameOption verwenden.

openssl s_client -servername gmail.com -connect gmail.com:443

Google Ergebnisse fürLuchs SNIsieht nicht gut aus.

Antwort2

https://gmail.com/verwendet kein fehlerhaftes Zertifikat. Hier ist sein aktuelles Zertifikat, wie es von Fiddler2 abgefangen wurde:

== Server Certificate ==========
[Subject]
  CN=gmail.com, O=Google Inc, L=Mountain View, S=California, C=US

[Issuer]
  CN=Google Internet Authority G2, O=Google Inc, C=US

[Serial Number]
  4F4A246099981C2C

[Not Before]
  16/07/2014 10:04:37 PM

[Not After]
  14/10/2014 11:00:00 AM

[Thumbprint]
  8F1065D237732F71CAD350A3FD0089AEEAAB675E

Beachten Sie das CN=gmail.com.

Der tatsächliche Antworttyp der HTTP-Anforderung ist to 301 Moved Permanently. https://mail.google.com/Dies hat zwei Auswirkungen:

  1. Der Browser leitet zum Ziel um und stellt eine neue Anfrage mit einem neuen Tunnel (weil andere Domäne) und einem anderen Zertifikat. Deshalb sehen Sie ein mail.google.comZertifikat - das istnachdie Umleitung. Wenn Sie sich die Adressleiste ansehen, sehen Sie, dass die Site, auf der Sie sich befinden http://mail.google.com/, , und nicht http://gmail.com/. Es ist etwas schwierig, das Zertifikat vor der Umleitung in einem Browser abzufangen, weshalb ich Fiddler2 verwendet habe.

  2. Der Browser speichert diese Umleitung im Cache und führt sie in Zukunft automatisch aus, ohne eine weitere Anfrage zu stellen https://gmail.com/(das ist der Sinn von Moved Permanently). Dies ist für diese Frage nicht wirklich von Bedeutung, macht es aber etwas schwieriger, die Umleitung zu entdecken – Sie müssen zuerst Ihren Cache leeren oder ein privates Browserfenster öffnen.

verwandte Informationen