【问题标题】:Web site certificate has expired only via WGET/CURL网站证书仅通过 WGET/CURL 过期
【发布时间】: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


【解决方案1】:

Dave 是正确的,因为这是服务器问题,最好的选择是更改服务器上的证书: https://www.openssl.org/blog/blog/2021/09/13/LetsEncryptRootCertExpire/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2021-11-29
    • 2020-09-18
    • 2018-06-16
    • 2014-09-22
    • 2021-11-22
    • 2019-11-20
    相关资源
    最近更新 更多