切换深浅色
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 网站时,会检查网站证书的有效期是否包含“现在”,以及证书是不是由它信任的机构签发。下面几种情况都会让它报“已过期”:
- 电脑的日期或时间不对:日期被调到证书有效期以外,所有网站的证书看起来都“过期”了。
- 代理、VPN、加速器或杀毒软件在检查 HTTPS 流量:它们会用自己的证书替换网站证书。这张替换用的证书过期了,或者工具不认它,就会报错。
- 地址填错了:工具里填的不是
https://xxapi.ai(拼错、填了别的网站,或者电脑的 hosts 文件改过),连到的就是另一张证书。 - 很旧的系统或 Python 环境:自带的根证书列表太旧,也可能报同样的错。
怎么解决
- 核对电脑的日期、时间和时区,打开“自动设置时间”。
- 用同一台电脑的浏览器打开
https://xxapi.ai,点地址栏左边的锁形图标查看证书:签发者应是 Let's Encrypt,有效期包含今天。如果签发者是你的杀毒软件、代理或公司网络设备,就是第 2 种情况。 - 暂时关掉代理、VPN、加速器再试;或者在杀毒软件里关闭“HTTPS 扫描”“加密连接扫描”这类选项,或把
xxapi.ai加入例外。 - 检查工具里的地址:完整填
https://xxapi.ai,需要/v1的工具填https://xxapi.ai/v1。 - Python 工具:更新证书包,再重新运行。
bash
pip install --upgrade certifimacOS 或 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 签发,在有效期内)。
