You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

证书信任链检查失败,如何排查其失败原因?

证书信任链检查失败的原因分析与排查步骤

核心错误定位

你执行的openssl verify -CAfile DEVICE_ROOT.pem device.crt输出中,最关键的失败原因是第一块错误:

C = EST, ST = Tallin, L = Tallin, O = COMPANY NAME, CN = 0000000330 DEVICE CERT
error 20 at 0 depth lookup: unable to get local issuer certificate
device.crt: verification failed

这条错误明确说明:device.crt的直接签发者证书,不在你指定的DEVICE_ROOT.pem文件中,或者两者的身份信息不匹配。

后面的STORE routines错误属于OpenSSL环境的附加问题,会干扰输出但不是导致证书链验证失败的核心原因,可后续处理。

分步排查步骤

1. 验证证书身份匹配性

分别提取设备证书的签发者信息,以及根证书的主体信息,对比是否完全一致:

  • 查看device.crt的签发者(Issuer):
    openssl x509 -in device.crt -noout -issuer
    
  • 查看DEVICE_ROOT.pem的主体(Subject):
    openssl x509 -in DEVICE_ROOT.pem -noout -subject
    

如果两者输出的内容不完全相同,说明你使用的DEVICE_ROOT.pem不是device.crt的直接签发证书,需要找到正确的中间证书或根证书。

2. 检查证书文件完整性与格式

  • 验证DEVICE_ROOT.pem是否为有效PEM格式证书:
    openssl x509 -in DEVICE_ROOT.pem -noout -text
    

如果命令报错,说明证书文件损坏、格式错误(比如不是PEM格式,而是DER格式),需要重新获取正确的证书文件。

  • 如果device.crt是包含中间证书的链式文件,尝试单独提取设备证书后再验证:
    # 提取设备证书(链式文件中第一个证书通常是终端证书)
    openssl x509 -in device.crt -out device_only.crt -noout
    # 用根证书验证单独的设备证书
    openssl verify -CAfile DEVICE_ROOT.pem device_only.crt
    

3. 处理OpenSSL环境附加错误

后面的STORE错误是因为OpenSSL尝试查找系统默认证书目录失败,且未加载默认provider,可通过以下方式消除:

  • 验证时添加-no-CApath参数,强制只使用你指定的-CAfile文件,跳过系统证书目录查找:
    openssl verify -no-CApath -CAfile DEVICE_ROOT.pem device.crt
    
  • 检查OpenSSL provider配置:执行openssl version -a查看输出中的OPENSSLDIR和Providers信息,确保默认provider(default、base)已启用,若未启用,可通过设置环境变量OPENSSL_CONF指定正确的配置文件。

内容的提问来源于stack exchange,提问作者vico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 21:17:32