この記事では、java に関する関連知識を提供します。OCSP オンライン証明書ステータス プロトコルは、CRL に代わるものとして提案されました。最近の Web サーバーは一般に OCSP をサポートしています。OCSP は、最新の Web サーバーの標準構成でもあります。皆さんのお役に立てれば幸いです。
推奨学習: 「java ビデオ チュートリアル 」
OCSP オンライン証明書ステータス プロトコルは、CRL に代わるものとして提案されました。最新の Web サーバーは通常 OCSP をサポートしており、OCSP は最新の Web サーバーの標準でもあります。
ただし、OCSP ステープリングはすべての Web サーバーでサポートされているわけではありません。しかし、実際の仕事では、特定の Web サイトが OCSP をどの程度サポートしているかを知る必要がある場合があります。
Web サイトが OCSP ステープルをサポートしているかどうかを確認するにはどうすればよいですか?
最も簡単な方法は、サードパーティの Web サイトにアクセスして、Web サイトの証明書情報を確認することです。たとえば、前に「trust.ssllabs.com」について説明しましたが、
「プロトコルの詳細」セクションに対応する Web サイト情報を入力すると、以下に示すように、Web サイトが OCSP ステープリングをサポートしているかどうかに関する具体的な情報が表示されます。
##この Web サイトでは OCSP ステープル留めが有効になっていることがわかります。しかし実際には、世界中のほとんどの Web サイトでは OCSP ステープル留めが有効になっていません。
では、サードパーティの Web サイトで OCSP ステープル留めを確認する以外に、他に方法はあるのでしょうか?
実際、openssl アーティファクトを使用すると、これを簡単に行うことができます。もちろん、このサイトがhttpsに対応していることが前提です。
次に、サーバーの証明書の取得からサーバーが OCSP ステープリングをサポートしているかどうかを確認するまでのプロセス全体を詳しく説明します。
この記事で検証する Web サイトは、OCSP ステープルをサポートする Microsoft の公式 Web サイト www.squarespace.com です。
サーバーの証明書を取得する
openssl s_client -connect www.squarespace.com:443
このコマンドは、アクセスする Web サイトの証明書情報を含む、接続を確立するすべての内容を出力します。
Web サイトの証明書のみが必要なので、
-----BEGIN CERTIFICATE----- と -----END CERTIFICATE- を入れる必要があります。 --- -
で囲まれた内容が保存可能です。 最終的なコマンドは次のとおりです:
openssl s_client -connect www.squarespace.com:443 | sed -n '/-----BEGIN/,/-----END/p' > ca.pem
ここでは sed -n コマンドを使用して、
-----BEGIN と ## で始まる出力をインターセプトします。 # -----END データを終了します。
ついにウェブサイトの証明書を取得しました。
openssl s_client -showcerts
コマンドも使用して、すべての証明書チェーンを取得します。openssl s_client -showcerts -connect www.squarespace.com:443 | sed -n '/-----BEGIN/,/-----END/p' > chain.pem
chain.pem ファイルを開くと、次の 2 つの証明書チェーンがあることがわかります。ファイル証明書。一番上のものはサーバー自体の証明書で、2 つ目はサーバー証明書の署名に使用される中間証明書です。
OCSP レスポンダーのアドレスを取得する証明書に OCSP レスポンダーのアドレスが含まれている場合は、次のコマンドを使用して取得できます: openssl x509 -noout -ocsp_uri -in ca.pem
http://ocsp.digicert.com
です。ocsp レスポンダーのアドレスを取得する別の方法があります:
openssl x509 -text -noout -in ca.pemこのコマンドは証明書のすべての情報を出力します。次の内容が表示されます:
Authority Information Access: OCSP - URI:http://ocsp.digicert.com CA Issuers - URI:http://cacerts.digicert.com/DigiCertTLSRSASHA2562020CA1-1.crtここで、OCSP - URI は OCSP レスポンダのアドレスです。 Send OCSP requestOCSP レスポンダーのアドレスを使用して、OCSP 検証を実行できます。このコマンドでは、サーバーの証明書と中間証明書を使用する必要があります。 具体的なリクエスト コマンドは次のとおりです:
openssl ocsp -issuer chain.pem -cert ca.pem -text -url http://ocsp.digicert.com出力から 2 つの部分を取得できます。最初の部分は OCSP リクエスト データで、これは OCSP リクエスト データです:
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リクエストから このデータでは、発行者のコンテンツや OCSP nonce を含む、詳細な OCSP リクエスト データ構造を確認できます。 2 番目の部分は応答データです。残念ながら、次のリクエスト エラー応答データが得られました:
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上記の返された結果で、Cert Status: Good は、OCSP リクエストが成功したことを意味します。このWebサイトは、OCSPプロトコルに対応したWebサイトです。 次の 2 行は、OCSP の最終更新時刻と次回更新時刻です。
This Update: Apr 30 04:21:01 2022 GMT Next Update: May 7 03:36:01 2022 GMTこの Web サイトが OCSP ステープル留めもサポートしていることを示します。 さらに、一部の Web サイトの OCSP URL をリクエストすると、次の例外が発生する場合があります:
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これはなぜですか? これは、Web サイト ocsp.msocsp.com が OCSP のデフォルトの HTTP 1.0 リクエストをサポートしていないためです。HTTP 1.0 リクエストには、デフォルトで Host リクエスト ヘッダーがありません。したがって、Host リクエスト ヘッダーを追加して、再度実行する必要があります。 より簡単な方法 上記では、実際にリクエストを分割し、段階的に実行しました。次のように、openssl を使用して 1 ステップでタスクを実行することもできます。
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视频教程》
以上がJava は openssl を使用して Web サイトが ocsp をサポートしているかどうかを検出しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。