Openssl 证书链

Openssl Certificate Chain

执行了命令:

openssl s_client  -connect (redacted):443

我得到了输出

depth=1 C = US, O = Let's Encrypt, CN = R3
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = *.(redacted)
verify return:1
---
Certificate chain
 0 s:CN = *.(redacted)
   i:C = US, O = Let's Encrypt, CN = R3
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
---

错误“无法获取本地颁发者证书”是什么意思?从上面我可以看到完整的链在那里,并且根 CA“DST Root CA X3”签署了“R3”证书。那么肯定不需要明确信任 R3 证书吗?这够好了吗? 这值得关注吗?

verify error:num=20:unable to get local issuer certificate

从叶子(服务器证书)到中间链证书 (R3) 的信任链必须以 本地信任的 根 CA (DST Root CA X3) 结束。显然,这个根 CA 在您的 openssl 设置使用的 CA 存储中不受本地信任(或者您可能已经明确使用 -CApath-CAfile)。