gpt4 book ai didi

ssl - 无法 `openssl verify' letsencrypt 证书

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:09 35 4
gpt4 key购买 nike

我使用 Certbot 容器通过 Letsencrypt 生成证书:

$ mkdir /home/$USER/letsencrypt
$ docker run -it --rm -p 80:80 -p 443:443 -v /home/$USER/letsencrypt:/etc/letsencrypt certbot/certbot certonly --standalone --email user@example.com --agree-tos -d example.com

我导航到生成的证书:

$ cd /home/$USER/letsencrypt/live/example.com

我可以验证chain.pem:

$ openssl verify chain.pem 
chain.pem: OK

我可以看到 chain.pem 中的内容:

$ openssl x509 -noout -in chain.pem -subject -issuer
subject=C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
issuer=O = Digital Signature Trust Co., CN = DST Root CA X3

我无法验证 cert.pem(大概是因为它需要链):

$ openssl verify cert.pem
CN = example.com
error 20 at 0 depth lookup: unable to get local issuer certificate
error cert.pem: verification failed

但我也无法验证 fullchain.pem :

$ openssl verify fullchain.pem
CN = example.com
error 20 at 0 depth lookup: unable to get local issuer certificate
error fullchain.pem: verification failed

证书似乎在浏览器中有效,但在 curl(和 Android http 客户端,这是真正的问题)中失败:

$ curl https://example.com
curl: (60) SSL certificate problem: unable to get local issuer certificate

我仔细检查过 fullchain.pemcert.pemchain.pem 的串联。

所以:我不明白为什么fullchain.pem不验证?

最佳答案

我从 man verify 中了解到这一点,阅读了 untrusted 的描述。原来 untrusted 实际上是您指定信任证书链的方式(当您这样说时似乎违反直觉)。

因此,验证 Letsencrypt 证书所需的命令是:

openssl verify -untrusted chain.pem cert.pem

cert.pem 是您的证书,chain.pem 是 LE 中间证书。无需为此使用 fullchain.pem

关于ssl - 无法 `openssl verify' letsencrypt 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50803160/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com