0深度查找时出现Openssl错误20:无法获取本地颁发者证书

0深度查找时出现Openssl错误20:无法获取本地颁发者证书,openssl,Openssl,根证书->中间CA->环境CA->主机证书 Openssl验证可与CAfile(具有证书链根+int+env)一起使用,但不能与CApath一起使用。我必须为syslog ng使用ca dir,并且我一直收到这个错误 openssl verify -CAfile etc/ssl/test/ca.pem host2.pem host2.pem: OK openssl verify -CApath /etc/ssl/test/ host2.pem host2.pem: CN = host.doma

根证书->中间CA->环境CA->主机证书

Openssl验证可与CAfile(具有证书链根+int+env)一起使用,但不能与CApath一起使用。我必须为syslog ng使用ca dir,并且我一直收到这个错误

openssl verify -CAfile etc/ssl/test/ca.pem host2.pem
host2.pem: OK

openssl verify -CApath /etc/ssl/test/ host2.pem
host2.pem: CN = host.domain.com
error 20 at 0 depth lookup:unable to get local issuer certificate

尽管主机证书是使用相同的配置生成的,并且使用相同的证书链,但Openssl验证在不同的主机上使用CA路径。为什么CApath验证失败?

来自Openssl文档:

受信任证书的目录。证书应该有 表单名称:hash.0或具有指向此表单名称的符号链接 (“hash”是经过哈希处理的证书使用者名称:请参阅-hash选项 x509实用程序的)。在Unix下,c_rehash脚本将 自动创建指向证书目录的符号链接

因此,如果我是对的,那么
-CApath
选项应该指向一个包含哈希证书列表的目录,或者指向它们的符号链接。 您可以通过使用
openssl x509
命令的
-hash
选项来获取某种列表


我希望,这会有帮助。

谢谢,解决了这个问题。哈希证书和符号链接在测试目录中丢失。这是我的荣幸。
-CApath directory