Ich möchte herausfinden, wie viele Browser unser SSL-Zertifikat ablehnen, wenn sie HTTP-Anfragen an unseren Webserver senden. Wir verwenden eine kostenlose Zertifizierungsstelle, die mittlerweile von den meisten modernen Browsern erkannt wird, aber ich möchte einige Zahlen erhalten, ohne die Kombinationen von Browsern und Betriebssystemen ausführlich zu testen.
Ich verstehe, dass der Browser die Verbindung beendet, wenn die Zertifikatsüberprüfung fehlschlägt. Gibt es also eine Möglichkeit für Apache, dies zu erkennen? Ich erwarte keine spezifischen Diagnoseinformationen - nur die Tatsache, dass ein Zertifikat- / SSL-Problem aufgetreten ist, reicht aus.
Antworten:
Das SSL-Protokoll hat in der Tat einen Warncode für den Fall, dass die Zertifizierungsstelle unbekannt ist. Sie können ihn vermutlich mit etwas wie tshark erkennen.
Sinnvoller ist es jedoch, zu wissen, wie das Problem vermieden werden kann. Stellen Sie in Apache sicher, dass Sie die folgenden DREI Anweisungen haben:
Die Erweiterungen der Dateinamen sind für Apache nicht wirklich wichtig. In diesem Fall ist die SSLCertificateFile ein einzelnes X.509-Zertifikat mit dem Betreff des Servers, und die SSLCertificateChainFile ist eine Verkettung von Intermediate- und Root-CA-Zertifikaten (beginnend mit dem Root zuerst).
Hier ist ein nützliches Skript, mit dem Sie Zertifikatsketten in der PEM-Codierung untersuchen können.
(Dieses spezielle Skript wird auch für eine bestimmte XML-Anwendung verwendet. Dies sollen die sed-Bits in der Nähe des Starts unterstützen. Die interessanten Bits werden von gawk ausgeführt.)
Hier ist ein Beispiel, wie Sie es verwenden können (z. B. um festzustellen, ob die Zertifikate im CA-Bundle in der richtigen Reihenfolge sind - manchmal ist dies wichtig).
Beachten Sie, wie der Aussteller eines Zertifikats neben dem Thema des Elternteils [unmittelbar unten] steht.
Hier ist ein weiteres Beispiel, wie Sie dieses Skript verwenden können, um eine lokale Datei zu überprüfen.
quelle