更新答案:

更新答案:

我遵循了其他 Stack 答案的指导(有无数与此相关的答案)来构建命令openssl verify来验证我的 Let's Encrypt 证书,如下所示:

openssl verify -show_chain /etc/letsencrypt/live/mail.example.com/chain.pem /etc/letsencrypt/live/mail.example.com/cert.pem 

但它失败并出现错误:

CN = mail.example.com
error 20 at 0 depth lookup: unable to get local issuer certificate
error /etc/letsencrypt/live/mail.example.com/cert.pem: verification failed
/etc/letsencrypt/live/mail.example.com/chain.pem: OK
Chain:
depth=0: C = US, O = Let's Encrypt, CN = R3 (untrusted)
depth=1: C = US, O = Internet Security Research Group, CN = ISRG Root X1

即使我替换fullchain.pemchain.pem仍然失败。但这些都是 Let's Encrypt 分发给我的所有证书!

我在这里缺少什么?

答案1

openssl verify -show_chain /etc/letsencrypt/live/mail.example.com/chain.pem /etc/letsencrypt/live/mail.example.com/cert.pem 

这个命令是错误的。它将尝试相互独立地验证所有给定的证书,即不构建信任链并验证第一个。相反,命令应该是:

openssl verify -untrusted chain.pem cert.pem

-untrusted颁发中级证书。根证书 ISRG X1 将从现代系统中的信任存储中获取,否则应使用-trusted或给出-CAfile

答案2

更新答案:

我将 @SteffenUllich 的答案标记为正确的答案,但我只会扩展其中与捆绑包内的内容以及他在答案中引用的信任存储相关的部分内容。

文件让我们加密为您提供:

错误出现了表明我的信任链破裂并且失踪了至少一张证书。但在我了解我拥有哪些证书之前,我不知道我错过了什么。

因此,我查看了 Let's Encrypt 提供给我的位于路径中的文件/etc/letsencrypt/live/example.com/,发现这些捆绑包包含以下内容:

证书.pem: 服务器的证书
链.pem:让我们加密“R3“证书+”ISRG 根 X1”(“中级证书”)
全链.pem:“链.pem”+“证书.pem”
私有密钥.pem:您的私钥。公钥被编码为cert.pem

笔记:使用单行代码验证上述内容mail.example.com在路径中替换为您自己的证书名称:

while openssl x509 -noout -text; do :; done < /etc/letsencrypt/live/mail.example.com/cert.pem

while openssl x509 -noout -text; do :; done < /etc/letsencrypt/live/mail.example.com/chain.pem 

while openssl x509 -noout -text; do :; done < /etc/letsencrypt/live/mail.example.com/fullchain.pem

信托商店:

看来我最初验证服务器证书的尝试缺少一个“信任锚”,使链能够追溯到起源。

然而:如果-CAfile未指定,正如 Steffen 所说,openssl将解析“信任存储”以查找根证书来完成信任链。

要安装“信任存储”,请在您的发行版中搜索包“ca-certificates”/“ca-certificates-bundle”。

因此,由于 CA 证书已经存在,因此无需下载任何其他内容即可成功跟踪链,正如我在原始答案中错误地指出的那样。事实上,如果您openssl只解析信任存储中的所有内容,直到找到匹配的内容,则验证更有可能成功。

要查找您的“信任商店”的位置:

openssl version -d

在 Alpine Linux 中,这是/etc/ssl

结论:

感谢 Steffen 提醒我,我发出的命令因错误原因而成功;-)。公平地说,openssl文档可能会更好一点......

相关内容