小编Jon*_*Bor的帖子

为什么我无法验证此证书链?

我在链中拥有三个证书:

  • 根目录
  • 中间件.pem
  • 约翰.pem

当我使用openssl x509 -in [filename] -text -noout它们检查它们时,它们看起来不错,root.pem 看起来像是自签名的(Issuer == Subject),并且正如预期的那样,每个证书的主题是下一个证书的颁发者。

事实上,我可以验证直到中间证书的链:

$ openssl verify -CAfile root.pem root.pem
root.pem: OK
$ openssl verify -CAfile root.pem intermediate.pem
intermediate.pem: OK
Run Code Online (Sandbox Code Playgroud)

但是, 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
Run Code Online (Sandbox Code Playgroud)

据我所知,这意味着openssl 无法找到intermediate.pem 的发行者。这没有意义,因为 root.pem 确实是中间件.pem 的发行者。

我错过了什么?


编辑:我最初发布了一个答案,说 root.pem 和 middle.pem 应该连接在一个文件中,然后应该使用这个文件作为-CAfile. 这是错误的,因为正如Johannes Pille指出的那样,这隐含地信任middle.pem。阅读他在我删除的答案中发布的链接:https …

certificate openssl

19
推荐指数
1
解决办法
3万
查看次数

标签 统计

certificate ×1

openssl ×1