OpenSSL 不使用 CA 目录

OpenSSL 不使用 CA 目录

OpenSSL 不会验证证书

$openssl s_client -connect <host>:443
...
Verify return code: 21 (unable to verify the first certificate)

然而,如果我们弄清楚了商店的位置

$ openssl version -d
OPENSSLDIR: "/usr/lib/ssl"

$ ll /usr/lib/ssl
...
lrwxrwxrwx   1 root root    14 Sep  9 16:40 certs -> /etc/ssl/certs

然后再次运行该命令,指定显然是默认的目录

$ openssl s_client -connect <host>:443 -CApath /etc/ssl/certs
...
Verify return code: 0 (ok)

那么,是否有其他方法可以明确检查 OpenSSL 从何处获取其根 CA 列表,或者可能在此处遇到的其他一些边缘情况,从而导致这种行为?

答案1

显然我只是在描述 OpenSSLs_client的预期行为 -https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/396818

看起来如果这个命令使用默认的 CApath,那么它会更有用(或者警告您没有使用任何 CApath,如错误报告所建议的那样),但这就是生活。

相关内容