我不明白 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 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 = 美国,ST = 加利福尼亚,L = 山景城,O = Google Inc,CN = google.com 验证返回:1 --- 证书链 0 秒:/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 秒:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA i:/C=US/O=Equifax/OU=Equifax 安全证书颁发机构 ---
Dav*_*rtz 15
验证回调函数(用于对特定用途的证书的适用性执行最终验证)由 SSL 传递一个称为preverify_okay
字段的字段,该字段指示证书链是否通过了适用于所有情况的基本检查。A1
表示这些检查通过了。
Run Code Online (Sandbox Code Playgroud)int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)
当设置 SSL_VERIFY_PEER 标志时,verify_callback 函数用于控制行为。它必须由应用程序提供并接收两个参数: 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);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17171 次 |
最近记录: |