Dieser Artikel bringt Ihnen relevantes Wissen über Java. Es wurde vorgeschlagen, CRL zu ersetzen. Moderne Webserver unterstützen im Allgemeinen auch die Standardkonfiguration von OCSP. Ich hoffe, es wird für alle hilfreich sein.
Empfohlene Studie: „Java-Video-Tutorial“
OCSP Online Certificate Status Protocol wurde als Ersatz für CRL vorgeschlagen. Moderne Webserver unterstützen im Allgemeinen OCSP, und OCSP ist auch für moderne Webserver Standard.
Aber nicht alle Webserver unterstützen OCSP-Heften. Aber in der Praxis müssen wir möglicherweise wissen, inwieweit eine bestimmte Website OCSP unterstützt.
Wie kann festgestellt werden, ob eine Website OCSP-Heftung unterstützt?
Am einfachsten ist es, die Website eines Drittanbieters aufzurufen, um die Zertifikatsinformationen der Website zu überprüfen. Beispielsweise haben wir zuvor entrust.ssllabs.com erwähnt. Durch Eingabe der entsprechenden Website-Informationen finden Sie im Abschnitt „Protokolldetails“ die spezifischen Informationen darüber, ob die Website OCSP-Stapling unterstützt, wie unten gezeigt:
openssl s_client -connect www.squarespace.com:443Dieser Befehl gibt den gesamten Inhalt des Verbindungsaufbaus aus, einschließlich der Zertifikatsinformationen der Website, auf die zugegriffen werden soll. Da wir nur das Zertifikat der Website benötigen, müssen wir
-----BEGIN CERTIFICATE-----
und -----END CERTIFICATE-----. <p><code>-----BEGIN CERTIFICATE-----
和-----END CERTIFICATE-----
之间的内容保存即可。
那么最终的命令如下:
openssl s_client -connect www.squarespace.com:443 | sed -n '/-----BEGIN/,/-----END/p' > ca.pem
这里我们使用一个sed -n命令从输出中截取以-----BEGIN
开头和以-----END
结尾的数据。
最终我们得到了网站的证书。
除了网站本身的证书之外,网站的证书本身是由其他的证书来签发的,这些证书叫做intermediate certificate,我们需要获取到整个证书链。
同样使用openssl的openssl s_client -showcerts
命令可以获取所有的证书链:
openssl s_client -showcerts -connect www.squarespace.com:443 | sed -n '/-----BEGIN/,/-----END/p' > chain.pem
如果你打开chain.pem文件可以发现,文件里面有两个证书,最上面的一个就是服务器本身的证书,而第二个就是用于签名服务器证书的intermediate certificate。
如果证书中包含有OCSP responder的地址,那么可以用下面的命令来获取:
openssl x509 -noout -ocsp_uri -in ca.pem
我们可以得到网站的ocsp responder地址是:http://ocsp.digicert.com
Dann lautet der letzte Befehl wie folgt:
openssl x509 -text -noout -in ca.pem
Hier verwenden wir einen sed -n-Befehl, um die Ausgabe abzufangen, die mit -----BEGIN
beginnt und mit ---- endet. -END.
Endlich haben wir das Zertifikat der Website erhalten.
Zusätzlich zum Zertifikat der Website selbst wird das Zertifikat der Website selbst von anderen Zertifikaten signiert. Diese Zertifikate werden als Zwischenzertifikate bezeichnet. Wir benötigen die gesamte Zertifikatskette.
openssl s_client -showcerts
von openssl, um alle Zertifikatsketten abzurufen: Authority Information Access: OCSP - URI:http://ocsp.digicert.com CA Issuers - URI:http://cacerts.digicert.com/DigiCertTLSRSASHA2562020CA1-1.crt
Wenn Sie die Datei „chain.pem“ öffnen, können Sie feststellen, dass die Datei zwei Zertifikate enthält, das oberste ist das Zertifikat des Servers selbst, und das zweite ist das Zwischenzertifikat, das zum Signieren des Serverzertifikats verwendet wird.
Holen Sie sich die OCSP-Responder-Adresse
Wenn das Zertifikat die Adresse des OCSP-Responders enthält, können Sie den folgenden Befehl verwenden, um sie abzurufen:
openssl ocsp -issuer chain.pem -cert ca.pem -text -url http://ocsp.digicert.com
Wir können die OCSP-Responder-Adresse der Website abrufen: http:/ /ocsp.digicert .com
.
Es gibt eine andere Möglichkeit, die Adresse des OCSP-Responders zu erhalten:
OCSP Request Data: Version: 1 (0x0) Requestor List: Certificate ID: Hash Algorithm: sha1 Issuer Name Hash: 521EE36C478119A9CB03FAB74E57E1197AF1818B Issuer Key Hash: 09262CA9DCFF639140E75867E2083F74F6EAF165 Serial Number: 120014F1EC2395D56FDCC4DCB700000014F1EC Request Extensions: OCSP Nonce: 04102873CFC7831AB971F3FDFBFCF3953EC5
Dieser Befehl gibt alle Informationen des Zertifikats aus. Wir können den folgenden Inhalt sehen:
OCSP Response Data: OCSP Response Status: successful (0x0) Response Type: Basic OCSP Response Version: 1 (0x0) Responder Id: B76BA2EAA8AA848C79EAB4DA0F98B2C59576B9F4 Produced At: Apr 30 04:36:26 2022 GMT Responses: Certificate ID: Hash Algorithm: sha1 Issuer Name Hash: E4E395A229D3D4C1C31FF0980C0B4EC0098AABD8 Issuer Key Hash: B76BA2EAA8AA848C79EAB4DA0F98B2C59576B9F4 Serial Number: 0F21C13200AE502D52BBE8DFEAB0F807 Cert Status: good This Update: Apr 30 04:21:01 2022 GMT Next Update: May 7 03:36:01 2022 GMT
wobei OCSP - URI die Adresse des OCSP-Responders ist .
OCSP-Anfrage senden
Mit der Adresse des OCSP-Responders können wir eine OCSP-Überprüfung durchführen. In diesem Befehl müssen wir das Zertifikat und das Zwischenzertifikat des Servers verwenden.
Der spezifische Anforderungsbefehl lautet wie folgt:
This Update: Apr 30 04:21:01 2022 GMT Next Update: May 7 03:36:01 2022 GMT
Wir können zwei Teile aus der Ausgabe erhalten. Der erste Teil sind OCSP-Anforderungsdaten, bei denen es sich um die OCSP-Anforderungsdaten handelt:
Error querying OCSP responder 4346349100:error:27FFF072:OCSP routines:CRYPTO_internal:server response error:/AppleInternal/Library/BuildRoots/66382bca-8bca-11ec-aade-6613bcf0e2ee/Library/Caches/com.apple.xbs/Sources/libressl/libressl-2.8/crypto/ocsp/ocsp_ht.c:251:Code=400,Reason=Bad Request
Der zweite Teil sind die Antwortdaten. Leider haben wir die folgenden Anfragefehler-Antwortdaten erhalten:
openssl s_client -tlsextdebug -status -connect www.squarespace.com:443🎜Im oben zurückgegebenen Ergebnis bedeutet Cert Status: good, dass die OCSP-Anfrage erfolgreich war OCSP-Protokoll. 🎜🎜Die folgenden zwei Zeilen geben den Zeitpunkt des letzten Updates von OCSP und den Zeitpunkt des nächsten Updates an: 🎜
OCSP response: ====================================== OCSP Response Data: OCSP Response Status: successful (0x0) Response Type: Basic OCSP Response Version: 1 (0x0) Responder Id: B76BA2EAA8AA848C79EAB4DA0F98B2C59576B9F4 Produced At: Apr 27 04:36:26 2022 GMT Responses: Certificate ID: Hash Algorithm: sha1 Issuer Name Hash: E4E395A229D3D4C1C31FF0980C0B4EC0098AABD8 Issuer Key Hash: B76BA2EAA8AA848C79EAB4DA0F98B2C59576B9F4 Serial Number: 0F21C13200AE502D52BBE8DFEAB0F807 Cert Status: good This Update: Apr 27 04:21:02 2022 GMT Next Update: May 4 03:36:02 2022 GMT🎜Gibt an, dass diese Website auch OCSP-Heften unterstützt. 🎜🎜Darüber hinaus erhalten Sie möglicherweise die folgende Ausnahme, wenn Sie die OCSP-URL einiger Websites anfordern: 🎜rrreee🎜Warum ist das so? 🎜🎜Das liegt daran, dass die Website ocsp.msocsp.com die Standard-HTTP-1.0-Anfrage von OCSP nicht unterstützt. In der HTTP-1.0-Anfrage gibt es standardmäßig keinen Host-Anfrageheader. Wir müssen also den Host-Anforderungsheader hinzufügen und ihn dann erneut ausführen. 🎜🎜Eine einfachere Methode🎜🎜Oben haben wir die Anfrage tatsächlich aufgeteilt und Schritt für Schritt ausgeführt. Wir können OpenSSL auch verwenden, um Aufgaben in einem Schritt wie folgt auszuführen: 🎜
openssl s_client -tlsextdebug -status -connect www.squarespace.com:443
从输出中,我们可以看到下面的数据:
OCSP response: ====================================== OCSP Response Data: OCSP Response Status: successful (0x0) Response Type: Basic OCSP Response Version: 1 (0x0) Responder Id: B76BA2EAA8AA848C79EAB4DA0F98B2C59576B9F4 Produced At: Apr 27 04:36:26 2022 GMT Responses: Certificate ID: Hash Algorithm: sha1 Issuer Name Hash: E4E395A229D3D4C1C31FF0980C0B4EC0098AABD8 Issuer Key Hash: B76BA2EAA8AA848C79EAB4DA0F98B2C59576B9F4 Serial Number: 0F21C13200AE502D52BBE8DFEAB0F807 Cert Status: good This Update: Apr 27 04:21:02 2022 GMT Next Update: May 4 03:36:02 2022 GMT
上面的命令直接输出了OCSP response结果,从结果中我们很清楚的看到该网站是否支持OCSP和OCSP stapling。
推荐学习:《java视频教程》
Das obige ist der detaillierte Inhalt vonJava verwendet OpenSSL, um zu erkennen, ob die Website OCSP unterstützt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!