Warum wissen Browser, welches Zertifikat zu verwenden ist, wenn mehrere Zertifikate vorhanden sind?

Warum wissen Browser, welches Zertifikat zu verwenden ist, wenn mehrere Zertifikate vorhanden sind?

Ich bin ein Neuling in der Server- und Netzwerkwelt. Ich hoffe, die Fragen sind klar und nicht so trivial. Ich bin kürzlich auf das folgende Szenario gestoßen:

  1. Es gab ein Root-Zertifikat A, das einige Monate später abläuft. Es gab ein weiteres neues Root-Zertifikat B, das A ersetzen sollte. Sowohl A als auch B sind selbstsigniert. Die CA von A wird von alten und neuen Browsern/Betriebssystemen als vertrauenswürdig eingestuft, während die CA von B nur von modernen Browsern/Betriebssystemen als vertrauenswürdig eingestuft wird.

  2. Es gab ein Kreuzzertifikat A->B (B signiert von A), das derzeit auf unseren Servern verwendet wird. Da A jedoch bald abläuft, haben wir als Ersatz ein anderes Kreuzzertifikat C->B (B signiert von C, dessen CA von alten und neuen Browsern/Betriebssystemen gleichermaßen als vertrauenswürdig eingestuft wird) verwendet.

  3. Jetzt aktualisieren wir in der UAT-Umgebung das Zertifikat C->B und versuche auf der Clientseite, einige ältere Browser zum Testen zu verwenden. Ich habe überprüft, dass nur die CA von A und die CA von C vertrauenswürdig sind, die CA von B hingegen nicht. Für die PROD-Umgebung bleiben wir unverändert, d. h. wir verwenden das Zertifikat A->B

  4. Ich greife mit dem genannten Browser auf die UAT-Site zu und verifiziere zum ersten Mal, dass das verwendete Zertifikat A->B ist. Überraschenderweise wird für den nachfolgenden Zugriff auf die UAT- und PROD-Sites das Zertifikat C->B verwendet (auf der Clientseite überprüft).

Meine Frage ist, ist das normales Verhalten? Warum „weiß“ die Clientseite seit dem ersten Zugriff auf UAT-Sites, dass C->B verwendet werden muss? Ich verwende es auch, openssl s_clientum zu überprüfen, ob der PROD-Server immer noch A->B verwendet. Woher wissen Browser, welches Zertifikat sie verwenden sollen, und „aktualisieren“ das Zertifikat entsprechend?

Bearbeitet am 13.12.2022

  1. Unser Hauptziel besteht darin, sowohl sehr alte als auch moderne Browser/Betriebssysteme zu unterstützen. Das heißt, alle Browser können auch nach Ablauf des Zertifikats A erfolgreich auf unsere Site zugreifen.
  2. Ich denke, meine Hauptfrage oder mein Hauptzweifel ist, ob das Folgende zutrifft:
  • Beim ersten Zugriff auf die UAT-Site in alten Browsern wird angezeigt, dass der Server aufgrund eines Caching-Mechanismus das Zertifikat A->B verwendet.
  • Nach dem ersten Zugriff auf die UAT-Site „pusht“ der Server das neue Zertifikat C->B tatsächlich auf die im Server konfigurierte Clientseite. Jetzt erkennen Browser oder sogar das Betriebssystem, dass das neueste Zertifikat C->B und nicht mehr A->B ist.
  • Obwohl C->B bestätigt ist, ist das Zertifikat A->B immer noch im Browser/Betriebssystem gespeichert. Aber der Browser weiß irgendwie, dass er mit dem neueren Zertifikat C->B verifizieren muss. Das bedeutet, dass unser Ziel erreicht werden kann.

Antwort1

TutDasbeantworte deine Frage?

Dem Link zufolge müssen Sie möglicherweise den Browser-Cache/SSL-Status löschen:

Webbrowser speichern SSL-Zertifikate im Cache, um das Surfen zu beschleunigen. Normalerweise ist das kein Problem. Wenn Sie jedoch Seiten für Ihre Website entwickeln oder ein neues Zertifikat installieren, kann der SSL-Status des Browsers Sie behindern. Beispielsweise wird das Vorhängeschlosssymbol möglicherweise nicht in der Adressleiste des Browsers angezeigt, nachdem Sie ein neues SSL-Zertifikat installiert haben.

verwandte Informationen