curl返回证书已过期(错误码10)但证书到期日期仍在有效期内
SSL证书校验异常排查解决步骤
- 该报错核心原因是证书信任链校验失败,并非站点部署的证书本身过期,可按以下优先级排查:
1. 校验服务器本地系统时间
- 执行
date命令查看服务器当前时间是否与实际时间一致,若服务器时间被误设为2021年12月13日之后,会触发证书过期误判 - 若时间异常,同步NTP时间后重新执行curl命令验证即可
2. 更新本地CA根证书库(该场景99%为该问题)
- 你使用的是Let's Encrypt签发的R3证书,2021年9月Let's Encrypt旧根证书DST Root CA X3正式过期,老旧操作系统的默认CA证书库未更新时就会触发该报错
- 对应系统执行CA证书更新命令:
- Debian/Ubuntu系列:
apt update && apt install -y ca-certificates - CentOS/RHEL系列:
yum update -y ca-certificates
- Debian/Ubuntu系列:
- 若更新后仍报错,手动移除旧的过期根证书:编辑
/etc/ca-certificates.conf,注释或删除mozilla/DST_Root_CA_X3.crt配置项,执行update-ca-certificates刷新证书库后重新验证
3. 排查本地hosts绑定规则
- 检查
/etc/hosts文件是否存在upfit.de的本地绑定记录,若绑定了127.0.0.1或旧服务IP,会访问到部署了旧证书的本地站点 - 移除无效绑定记录后重新验证即可
4. 校验站点证书链完整性
- 执行
openssl s_client -connect upfit.de:443 -servername upfit.de查看返回的证书链路,确认是否包含完整的中间证书 - 若你是站点运维人员,确认Web服务(Nginx/Apache等)配置中使用的是完整的fullchain证书文件,而非仅单独配置了域名证书,缺失中间证书也会导致部分客户端校验失败
内容的提问来源于stack exchange,提问作者Nicolas
相关产品推荐
相关产品推荐

