Wie löschen Sie die Zuordnungen von SSL-Blattzertifikaten zu bestimmten Domänen?

Ich besuche meine Website mit Chrome unter macOS Mojave, z. B. qa.abc.com, und das SSL-Blattzertifikat stammt von customer-test.ssl.fastly.net. Ich habe kürzlich den CNAME-Eintrag in meinem DNS für qa.abc.com aktualisiert, sodass er auf b3.shared.global.fastly.net verweisen sollte. Wenn ich qa.abc.com besuche, löst es das SSL-Zertifikat bei customer-test.ssl.fastly.net anstelle von b3.shared.global.fastly.net auf.

Sie würden denken, dass das Leeren des Caches ausreichen könnte, aber nein, egal, ob es sich um den Inkognito-Modus von Chrome handelt oder um das Löschen des Caches, es ist immer noch dasselbe. Dann habe ich sowohl Safari als auch Firefox überprüft und sogar versucht, den folgenden Befehl in meinem Terminal auszuführen:

echo | openssl s_client -connect qa.abc.com:443

mit dem Ergebnis:

---
Certificate chain
 0 s:/C=US/ST=California/L=San Francisco/O=Fastly, Inc./CN=customer-test.ssl.fastly.net
   i:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3
 1 s:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3
   i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA

Wenn ich im selben WLAN-Netzwerk auf den Windows 10-Computer meines Bruders springe, zieht die Website das SSL-Zertifikat korrekt von b3.shared.global.fastly.net. Wenn ich über mein iPhone 6 auf die Site zugreife, wird sie korrekt von b3.shared.global.fastly.net abgerufen. Wenn ich auf meinem MacBook per Tethering auf meinem iPhone 6 surfe, wird es immer noch als customer-test.ssl.fastly.net angezeigt.

Wir wissen also:

  1. Es hat nichts mit dem Browser zu tun, da alle Browser auf die gleiche Weise betroffen sind, einschließlich openssl in der Befehlszeile
  2. Es hat nichts mit dem Netzwerk zu tun, da andere Geräte im selben Netzwerk einwandfrei funktionieren.

Ich vermute, dass die Zuordnung zwischen einem SSL-Zertifikat und einer Domäne irgendwo auf Betriebssystemebene zwischengespeichert wird.

Andere Dinge, die ich versucht habe, aber nicht funktioniert haben:

  1. Starten Sie den Computer neu, indem Sie ihn ausschalten und wieder einschalten
  2. Suchen Sie in der Schlüsselbundverwaltung nach abgelaufenen Zertifikaten (ja, die Anzeige ausgeblendeter abgelaufener Zertifikate ist bereits aktiviert), aber Sie haben nichts gefunden, was mit meiner Website oder Fastly zu tun hat, und es wurde kein Fehler bei einem der Globalsign-Zertifikate gefunden.
  3. Versucht, CRL und OCSP-Cache für GlobalSign zu löschen, aber es ist nicht relevant, weil /var/db/crls/crlcache.db, /var/db/crls/ocspcache.db, noch ~/Library/Keychains/*/ocspcache.sqlite3 existieren unter macOS Mojave.

Antworten (2)

Es gibt kein solches Caching von SSL-Zertifikaten. Es ist kein Caching-Problem auf dem Client.

Das Problem liegt hier beim Server - er präsentiert das falsche Zertifikat (aus Ihrer Sicht).

Der Grund dafür, dass einige Clients ein Zertifikat und andere ein anderes sehen, ist höchstwahrscheinlich auf CDN und/oder Lastenausgleich zurückzuführen, was bedeutet, dass Sie nicht wirklich denselben Endpunkt erreichen. Es klingt wahrscheinlich, dass der Server dauerhafte Verbindungen (auch bekannt als Sticky Sessions) verwendet, was bedeutet, dass Ihr MacBook eine Sache sieht, aber Ihr iPhone und Ihr Windows 10-Computer eine andere Sache.

Dies ist etwas, das Sie auf Serverebene lösen müssen. Es hat nichts mit Ihrem Mac als solchem ​​zu tun.

Es stellte sich also heraus, dass ich die Domain einer bestimmten IP in meiner lokalen /etc/hosts-Datei zugeordnet hatte. Es zeigte auf einen CDN-Knoten, der das alte Zertifikat bereitstellte. Nachdem ich den Eintrag entfernt hatte, zeigte er auf einen neuen Knoten mit dem richtigen Zertifikat.