You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Axios提示"certificate has expired"但证书实际未过期的原因排查问询

Axios Linux环境提示未过期证书已过期的根因与修复方案

1. 最常见原因:Linux系统根证书库未包含Let's Encrypt有效根证书

Let's Encrypt旧的DST Root CA X3根证书已于2021年9月到期,目前有效根证书为ISRG Root X1。旧版本Linux发行版的ca-certificates包如果长期未更新,会缺失ISRG Root X1,或者仍优先校验过期的DST根证书,触发过期报错。Windows系统的根证书默认自动更新,因此同环境可正常请求。
修复方法:

  • Debian/Ubuntu系列执行:sudo apt update && sudo apt install ca-certificates
  • CentOS/RHEL系列执行:sudo yum update ca-certificates
  • 更新完成后执行sudo update-ca-certificates(Debian/Ubuntu)或sudo update-ca-trust(CentOS/RHEL)刷新系统根证书库

2. Node.js内置根证书列表过旧

Node.js默认使用自身内置的根证书列表而非完全依赖系统根证书,低于v16.x的长期维护版本可能未内置ISRG Root X1根证书,导致证书校验失败。
修复方法:

  • 升级Node.js到v16.x及以上的LTS版本
  • 若不方便升级Node版本,可手动指定Node加载系统根证书库:启动脚本时添加环境变量NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crt,例如NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crt node your_script.js

3. Linux本地hosts绑定了错误的站点IP

双引导设备的Linux与Windows系统hosts配置相互独立,若Linux的hosts文件中手动绑定了API域名的旧IP,该IP对应的站点可能部署了过期证书,就会出现同域名不同系统请求结果不一致的情况。
修复方法:

  • 执行cat /etc/hosts检查是否存在API域名的手动绑定记录,若存在则删除对应条目即可

4. 请求链路存在透明代理篡改证书

部分网络环境下Linux系统可能配置了全局透明代理,代理返回的自签名证书已过期,而Windows系统未配置对应代理,直接请求获取了真实有效证书。
修复方法:

  • 执行echo $http_proxy $https_proxy检查系统代理配置,清除无效代理即可
  • 若为必须使用的代理,将代理的根证书导入系统根证书库即可

5. API服务端证书链配置不完整

若API服务端仅部署了域名证书,未配置中间证书,Windows系统会自动拉取缺失的中间证书完成校验,而Linux/Node.js不会自动补全,就会出现校验失败的情况。
修复方法:

  • 联系API提供方补全证书链配置,将Let's Encrypt的中间证书和域名证书合并部署即可
  • 也可手动将API的中间证书导入本地系统根证书库临时解决

内容的提问来源于stack exchange,提问作者J23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:39:03