【发布时间】:2022-01-18 01:49:07
【问题描述】:
我的网站使用 Let's Encrypt 证书,该证书可以在 Web 浏览器中正常工作。通过 wget/curl 从我的网站检索文件时,我收到 SSL 证书已过期的警告。所以我创建了一个简单的脚本来检查我的 SSL 证书:
[root]# cat certinfo.sh
nslookup $1
(openssl s_client -showcerts -servername $1 -connect $1:443 <<< "Q" | openssl x509 -text | grep -iA2 "Validity")
然后我针对我的网站运行脚本:
[root]# ./certinfo.sh files.mysite.io
Server: 172.31.254.4
Address: 172.31.254.4#53
Non-authoritative answer:
Name: files.mysite.io
Address: 52.204.19.216
depth=3 O = Digital Signature Trust Co., CN = DST Root CA X3
verify error:num=10:certificate has expired
notAfter=Sep 30 14:01:15 2021 GMT
DONE
Validity
Not Before: Dec 1 04:00:19 2021 GMT
Not After : Mar 1 04:00:18 2022 GMT
这里到底发生了什么?今天(2021 年 12 月 14 日)在证书有效期内,如上图所示。然而,有一个“notAfter”设置已过期。我在我的证书或中间证书中找不到“notAfter”。
这是从哪里来的,我该如何适应它?
【问题讨论】:
-
It's LetsEncrypt 默认情况下仍提供一个链,如错误消息所述,DST Root CA X3 - 已于 9 月 30 日到期。大多数 客户端(如浏览器)可以替换更新的、有效的 ISRG X1 根,但如果 两个 根(DST 和 ISRG)仍然配置,则使用 OpenSSL 1.0.2 的程序会失败,这取决于您的系统; curl 和 wget 是否使用 OpenSSL(以及哪个版本)也取决于您的系统。在 9 月 30 日之后的一两周内,有 几十个 问题与此相关——搜索适合您系统的问题。使用较新的 OpenSSL,删除 DST 根,或更改服务器。
标签: ssl certificate