对于站点www.sddts.cn来说,https的ssl证书目前是letsencypt颁发的根证书为dst的证书,而其他站点已经是isrg了。

使用脚本查看centos系统/etc/ssl/certs/ca-bundle.crt中的记录

#!/bin/bash

# 指定ca-bundle.crt文件的路径
CA_BUNDLE_PATH="/etc/ssl/certs/ca-bundle.crt"

# 检查文件是否存在
if [ ! -f "$CA_BUNDLE_PATH" ]; then
    echo "文件 $CA_BUNDLE_PATH 不存在。"
    exit 1
fi

echo "正在检查文件 $CA_BUNDLE_PATH 中的证书..."

# 分割ca-bundle.crt文件中的证书,并逐一处理
csplit -sz "$CA_BUNDLE_PATH" '/-----BEGIN CERTIFICATE-----/' '{*}' > /dev/null

# 遍历生成的xx00,xx01,...文件
for CERT_FILE in xx*; do
    # 获取证书的主题名称
    SUBJECT_NAME=$(openssl x509 -in "$CERT_FILE" -noout -subject | sed -e 's/subject= //;s/.*CN=//')
    # 获取证书的有效期
    EXPIRY_DATE=$(openssl x509 -in "$CERT_FILE" -noout -enddate | cut -d= -f2)
    if [ ! -z "$SUBJECT_NAME" ] && [ ! -z "$EXPIRY_DATE" ]; then
        echo "Certificate: $SUBJECT_NAME, Expiry Date: $EXPIRY_DATE"
    fi
    # 清理生成的临时证书文件
    rm "$CERT_FILE"
done

可以看到,dst证书已经过期了
2024-02-20T08:25:11.png

但是呢,curl可以正常使用
2024-02-20T08:25:44.png

wget却不可以
2024-02-20T08:26:05.png

wget是否可以忽略过期的证书呢?
gpt说没有办法。

那么修改日期是否可以呢?
2024-02-20T08:31:06.png

重启一下呢?
重启后,系统时间恢复了,再次修改然后wget也不行。

如此看来,在cacerts文件有dst证书的情况下,当然已经过期了,面对一个dst站点,curl依旧可以正常访问,而wget不行,且jdk貌似也是可以的。

最后修改:2024 年 05 月 11 日
如果觉得我的文章对你有用,请随意赞赏