validation返回值是什么:在openssl输出中有1个意思

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

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

最后一切都很好,最终实体的证书validationOK: Verify return code: 0 (ok)

但是validationreturn:1在下面的中间产品的输出开始时是return:1 ? 这是什么意思呢?这是什么意思?

 深度= 3 C = US,O = Equifax,OU = Equifax安全authentication中心validation返回:1
深度= 2 C = US,O = GeoTrust Inc.,CN = GeoTrust Global CAvalidation返回:1
深度= 1 C =美国,O =谷歌公司,CN =谷歌互联网pipe理局G2validation返回:1
深度= 0 C =美国,ST =加州,L =山景,O =谷歌公司,CN = google.comvalidation返回:1

 ---
证书链
  0 s:/ C = US / ST =加州/ L =山景/ O = Google Inc / CN = google.com
   我:/ C = US / O = Google Inc / CN = Google互联网pipe理局G2
  1 s:/ C = US / O = Google Inc / CN = Google互联网pipe理局G2
   我:/ 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安全证书颁发机构
 ---


validationcallback函数(用于对特定用途的证书的适用性进行最终validation)通过一个名为preverify_okay字段的SSL字段,该字段指示证书链是否通过了适用于所有情况的基本检查。 1表示这些检查通过。

 int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx) 

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