Skip to content

CERTIFICATE_VERIFY_FAILED: certificate has expired ​

text
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1032)

其他工具里的同类写法:CERT_HAS_EXPIRED(Node.js)、SSL certificate problem: certificate has expired(curl)、浏览器里的 NET::ERR_CERT_DATE_INVALID。

这句报错的意思是:你的电脑在检查网站证书时,认为证书已经过期。xxapi.ai 的证书自动续期,在有效期内时,原因几乎都在你这一侧:电脑日期不对、代理或杀毒软件替换了证书,或者工具里填的不是 xxapi 的地址。按下面的顺序查。

出现在什么时候 ​

  • 工具:Python 写的脚本和批量工具(报错里带 _ssl.c)、Node.js 工具、命令行,偶尔是浏览器。
  • 时机:每个请求都报,和用哪个模型、哪个分组无关。
  • 同一时间,别人用同样的工具连 xxapi 一般是正常的。

原因 ​

客户端连接 HTTPS 网站时,会检查网站证书的有效期是否包含“现在”,以及证书是不是由它信任的机构签发。下面几种情况都会让它报“已过期”:

  1. 电脑的日期或时间不对:日期被调到证书有效期以外,所有网站的证书看起来都“过期”了。
  2. 代理、VPN、加速器或杀毒软件在检查 HTTPS 流量:它们会用自己的证书替换网站证书。这张替换用的证书过期了,或者工具不认它,就会报错。
  3. 地址填错了:工具里填的不是 https://xxapi.ai(拼错、填了别的网站,或者电脑的 hosts 文件改过),连到的就是另一张证书。
  4. 很旧的系统或 Python 环境:自带的根证书列表太旧,也可能报同样的错。

怎么解决 ​

  1. 核对电脑的日期、时间和时区,打开“自动设置时间”。
  2. 用同一台电脑的浏览器打开 https://xxapi.ai,点地址栏左边的锁形图标查看证书:签发者应是 Let's Encrypt,有效期包含今天。如果签发者是你的杀毒软件、代理或公司网络设备,就是第 2 种情况。
  3. 暂时关掉代理、VPN、加速器再试;或者在杀毒软件里关闭“HTTPS 扫描”“加密连接扫描”这类选项,或把 xxapi.ai 加入例外。
  4. 检查工具里的地址:完整填 https://xxapi.ai,需要 /v1 的工具填 https://xxapi.ai/v1。
  5. Python 工具:更新证书包,再重新运行。
bash
pip install --upgrade certifi

macOS 或 Linux 上,想在终端里看连到的是哪张证书:

bash
curl -vI https://xxapi.ai

输出里 issuer: 一行是签发者,expire date: 一行是到期时间。

用 xxapi 时还要查什么 ​

  • 浏览器里 xxapi.ai 的证书正常,只有某个工具报错:问题在这个工具所在的环境(它用的代理、证书设置或 Python 版本),换一台电脑或另一个网络试一次就能确认。
  • 浏览器里看到的证书也不对:截图证书的签发者和有效期,连同报错、出错时间和你用的网络(家里、公司、是否开了代理)发给 support@xxapi.ai。截图里不要露出 API 密钥。

核对日期:2026-10-28(xxapi.ai 证书由 Let's Encrypt 签发,在有效期内)。

回到常见问题

从第一步,到第一次成功使用。