我有一连串的三个证书:
当我使用openssl x509 -in [filename] -text -noout
它们进行检查时,它们看起来不错,root.pem看起来就像是自签名的(Issuer == Subject),并且每张证书的Subject都是下一个证书的Issuer。
实际上,我可以验证到中间证书的链:
$ openssl verify -CAfile root.pem root.pem
root.pem: OK
$ openssl verify -CAfile root.pem intermediate.pem
intermediate.pem: OK
但是,john.pem失败:
$ openssl verify -CAfile root.pem -CAfile intermediate.pem john.pem
john.pem: C = CL, [...redacted data...]
error 2 at 1 depth lookup:unable to get issuer certificate
据我所知,这意味着openssl无法找到middle.pem的发行者。这没有任何意义,因为root.pem实际上是middle.pem的颁发者。
我想念什么?
编辑:我最初发布了一个答案,说root.pem和intermediate.pem应该串联在一个文件中,然后应该使用该文件作为的参数-CAfile
。正如约翰内斯·皮勒(Johannes Pille)指出的那样,这是错误的,因为它隐式地信任middle.pem。阅读他在我已删除的答案中发布的链接:https : //mail.python.org/pipermail/cryptography-dev/2016-August/000676.html
您不必将两个证书放在一起即可对其进行验证。
如果您具有以下三个证书:
并且您仅信任root.pem,然后可以john.pem
使用以下命令进行验证:
openssl verify -CAfile root.pem -untrusted intermediate.pem john.pem
如果您有许多中间体,您可以将 -untrusted intermediate2.pem -untrusted intermediate3.pem ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句