对于站点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证书已经过期了
但是呢,curl可以正常使用
wget却不可以
wget是否可以忽略过期的证书呢?
gpt说没有办法。
那么修改日期是否可以呢?
重启一下呢?
重启后,系统时间恢复了,再次修改然后wget也不行。
如此看来,在cacerts文件有dst证书的情况下,当然已经过期了,面对一个dst站点,curl依旧可以正常访问,而wget不行,且jdk貌似也是可以的。