OpenSSL';s s_客户端在使用-“卡帕斯”;选项

OpenSSL';s s_客户端在使用-“卡帕斯”;选项,openssl,Openssl,我在尝试调试客户端web服务器的一些SSL问题时遇到了s_client的一个有趣行为 如果我这样做 openssl s_客户端-服务器名“www.delinat.com”-连接www.delinat.com:443 s_客户端给我提供了验证返回代码:20(无法获取本地颁发者证书) 我猜这意味着默认情况下,它不使用任何受信任的根证书,因为这里的-CApath和-CAfile选项就是用于此目的的,对吗 但请考虑: openssl s_客户端-服务器名“www.delinat.com”-连接www.d

我在尝试调试客户端web服务器的一些SSL问题时遇到了
s_client
的一个有趣行为

如果我这样做

openssl s_客户端-服务器名“www.delinat.com”-连接www.delinat.com:443

s_客户端
给我提供了
验证返回代码:20(无法获取本地颁发者证书)

我猜这意味着默认情况下,它不使用任何受信任的根证书,因为这里的
-CApath
-CAfile
选项就是用于此目的的,对吗

但请考虑:

openssl s_客户端-服务器名“www.delinat.com”-连接www.delinat.com:443-CApath foo

此命令将返回
验证返回代码:0(确定)
,但没有目录
foo

看起来,给出一个不远的路径会以某种方式强制
s\u客户机
使用默认的根证书

但是如果不给
-CApath
选项赋值,则会产生错误


有人能解释一下这种行为吗?另外,在第二种情况下,
s\u客户机使用哪个根证书?

这个问题似乎与主题无关,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。另请参见。
openssl s_客户端-服务器名“www.delinat.com”-连接www.delinat.com:443-CApath foo
。。。将返回
验证返回代码:0(确定)
-在OpenSSL 1.0.2c上确认。这似乎是一个安全漏洞。我冒昧地给OpenSSL的同事发了电子邮件,并引用了这个问题。好发现。谢谢@jww!我也投票结束了这个问题。我刚刚和项目的马特·卡斯韦尔谈过。他无法复制。然后我查看了我的设置,发现它使用的是Macport的OpenSSL。然后我在
/usr/local/ssl
中使用了我的OpenSSL副本,它也失败了。问题:您正在使用Macports吗?不,这是在Debian Wheezy 7.8上使用OpenSSL 1.0.1e(特别是版本
1.0.1e-2+deb7u17
)。这个问题似乎与主题无关,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。另请参见。
openssl s_客户端-服务器名“www.delinat.com”-连接www.delinat.com:443-CApath foo
。。。将返回
验证返回代码:0(确定)
-在OpenSSL 1.0.2c上确认。这似乎是一个安全漏洞。我冒昧地给OpenSSL的同事发了电子邮件,并引用了这个问题。好发现。谢谢@jww!我也投票结束了这个问题。我刚刚和项目的马特·卡斯韦尔谈过。他无法复制。然后我查看了我的设置,发现它使用的是Macport的OpenSSL。然后我在
/usr/local/ssl
中使用了我的OpenSSL副本,它也失败了。问题:您正在使用Macports吗?不,这是在Debian Wheezy 7.8上使用OpenSSL 1.0.1e(特别是版本
1.0.1e-2+deb7u17
)。