openssl 输出中的 verify return:1 是什么意思

openssl 输出中的 verify return:1 是什么意思

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

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

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

return:1但是下面中间体输出开头的验证怎么办?这是什么意思或者有什么意义?

深度=3 C = US,O = Equifax,OU = Equifax 安全证书颁发机构验证返回:1
深度=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA 验证返回:1
深度=1 C = US, O = Google Inc, CN = Google Internet Authority G2 验证返回:1
深度=0 C = 美国,ST = 加利福尼亚,L = 山景城,O = Google Inc,CN = google.com 验证返回:1

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


答案1

SSL 向验证回调函数(用于对证书是否适用于特定用途进行最终验证)传递一个字段,该preverify_okay字段称为 ,用于指示证书链是否通过了适用于所有情况的基本检查。A1表示这些检查已通过。

int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)

verify_callback 函数用于控制设置 SSL_VERIFY_PEER 标志时的行为。它必须由应用程序提供并接收两个参数: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);
    }

相关内容