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

跨机器生成CSR经本地CA签名后openssl验证失败问题咨询

解决openssl验证服务器证书时的"unable to get local issuer cert"错误

让我来帮你捋清楚这个问题,你看到的两个错误其实一个是正常提示,一个才是验证失败的根源:

先搞懂错误含义

  • 错误18(self signed certificate OK):这个完全不用慌——你自己搭建的CA根证书本身就是自签名的,OpenSSL只是在告诉你“这个证书是自己签自己的”,最后那个OK已经说明CA证书本身是有效的,这是自建CA的正常状态。
  • 错误20(unable to get local issuer cert):这才是验证失败的关键。你之前的命令写法不对,直接把CA证书和服务器证书丢在openssl verify后面,OpenSSL不会自动把这个CA证书当作信任锚来验证服务器证书,它找不到服务器证书的颁发者(也就是你的CA)在信任列表里,所以报错。

解决步骤

1. 使用正确的验证命令

你需要用-CAfile参数明确指定信任的CA证书,让OpenSSL用它来验证服务器证书:

openssl verify -CAfile /root/tmp/tmp/cacert.pem /root/tmp/servercert105.pem

执行这个命令后,如果服务器证书确实是由你的CA签名的,应该会输出/root/tmp/servercert105.pem: OK。

2. 额外排查(如果还是失败)

如果上面的命令还是报错,你需要检查两个关键点:

  • 确认颁发者一致性:服务器证书的颁发者必须和CA证书的主体完全一致。用下面的命令分别查看:
    # 查看CA证书的主体信息
    openssl x509 -noout -subject -in /root/tmp/tmp/cacert.pem
    # 查看服务器证书的颁发者信息
    openssl x509 -noout -issuer -in /root/tmp/servercert105.pem
    
    这两个输出的内容必须完全匹配,否则说明服务器证书不是由这个CA签名的,自然验证不通过。
  • 检查证书有效性:确认服务器证书没有过期,并且扩展用途符合服务器证书的要求(比如要有TLS Web Server Authentication):
    openssl x509 -noout -text -in /root/tmp/servercert105.pem | grep -A 3 "X509v3 Extended Key Usage"
    

总结

核心问题就是之前的验证命令没有正确指定信任的CA证书,改用-CAfile参数就能让OpenSSL用你的自建CA来验证服务器证书,再配合检查颁发者一致性,就能解决这个验证失败的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:06:08