opensslの出力でreturn:1の意味を確認するもの


10

opensslの出力がわかりません。次のようにopensslを実行します。

#openssl s_client -connect google.com:443 -CAfile cacert.pem < /dev/null

最終的にはすべて、エンドエンティティの証明書が確認されたという点で問題はありません。 Verify return code: 0 (ok)

しかしreturn:1、下の中間体の出力の最初にあるw / verifyについてはどうですか?それはどういう意味ですか、それは何の意味ですか?

depth = 3 C = US、O = Equifax、OU = Equifax Secure Certificate Authorityがリターンを確認します:1
depth = 2 C = US、O = GeoTrust Inc.、CN = GeoTrust Global CAはリターンを確認します:1
depth = 1 C = US、O = Google Inc、CN = Google Internet Authority G2確認リターン:1
depth = 0 C = US、ST = California、L = Mountain View、O = Google Inc、CN = google.comリターンを確認:1

---
証明書チェーン
 0 s:/ C = US / ST = California / L = Mountain View / O = Google Inc / CN = google.com
   i:/ C = US / O = Google Inc / CN = Google Internet Authority G2
 1 s:/ C = US / O = Google Inc / CN = Google Internet Authority G2
   i:/ C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
 2 s:/ C = US / O = GeoTrust Inc./CN=GeoTrust Global CA
   i:/ C = US / O = Equifax / OU = Equifax Secure Certificate Authority
---


回答:


13

検証コールバック関数(特定の用途に対する証明書の適用性の最終検証を実行するために使用される)には、SSLによってフィールドが渡されます。このpreverify_okayフィールドは、証明書チェーンがすべてのケースに適用される基本チェックに合格したかどうかを示します。A 1は、これらのチェックに合格したことを意味します。

int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)

verify_callback関数は、SSL_VERIFY_PEERフラグが設定されているときの動作を制御するために使用されます。これはアプリケーションによって提供される必要があり、2つの引数を受け取ります。preverify_okは、問題の証明書の検証に合格したか(preverify_ok = 1)、否か(preverify_ok = 0)を示します。

これが表示されているものverify return:1です。

詳細が必要な場合は、コードを確認できます。

int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
    {
    [ snip ]
    BIO_printf(bio_err,"verify return:%d\n",ok);
    return(ok);
    }

完全なドキュメントもここにあります:openssl.org/docs/manmaster/ssl/SSL_CTX_set_verify.html
jouell
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.