【问题标题】:Openssl error 20 at 0 depth lookup:unable to get local issuer certificateOpenssl 错误 20 在 0 深度查找:无法获取本地颁发者证书
【发布时间】:2018-11-03 02:16:34
【问题描述】:

Root certificate -> Intermediate CA -> Environment CA -> Host Cert

Openssl 验证适用于 CAfile(具有证书链 root+int+env),但不适用于 CApath。我必须将 ca-dir 用于 syslog-ng 并且我不断收到此错误。

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


    【解决方案1】:

    来自 Openssl 文档: https://www.openssl.org/docs/manmaster/man1/verify.html

    -CApath directory
    

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

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

    希望对你有帮助。

    【讨论】:

    • 谢谢,解决了这个问题。测试目录中缺少散列证书和符号链接。
    • 这是我的荣幸。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2018-05-15
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 2014-12-03
    相关资源
    最近更新 更多