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:
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.
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.
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
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_client
um 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
- 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.
- 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.