题 验证返回的内容:1表示openssl输出


我不明白openssl输出。运行openssl如下:

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

最终,一切都很好,最终实体的证书已经过验证: Verify return code: 0 (ok)

但是验证怎么样? return:1 在下面的中间体输出的开头?这意味着什么或者重点是什么?

depth = 3 C = US,O = Equifax,OU = Equifax安全证书颁发机构验证返回: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秒:/ C = US / ST =加州/ L =山景/ 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安全证书颁发机构
---



8
2018-01-08 00:42






答案:


验证回调函数(用于执行证书对特定用途的适用性的最终验证)通过SSL传递一个字段,称为 preverify_okay 指示证书链是否通过适用于所有情况的基本检查的字段。一个 1 意味着这些检查通过。

int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)

verify_callback函数用于控制设置SSL_VERIFY_PEER标志时的行为。它必须由应用程序提供并接收两个参数:preverify_ok表示是否通过了验证(preverify_ok = 1)(preverify_ok = 0)(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);
    }

9
2018-01-08 08:28



完整的文档也在这里生活: openssl.org/docs/manmaster/ssl/SSL_CTX_set_verify.html - jouell