zai-org / zai-org/feedback

[Bug] zcode.z.ai 证书 SAN 仅含 IP 无 DNS 名:bigmodel OAuth 登录与 coding-plan 接口自 09-17 10:05 起全部失败

Open
#694 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

priority: P2
Dominant language
No language data
Stars
22
Forks
1
PR merge metrics
No merged PRs in 30d

Description

提交前确认 · Pre-submission checklist
  • 我已搜索过现有 issue,确认这不是重复 / I searched existing issues and confirmed this isn't a duplicate.
  • 我已阅读 CONTRIBUTING.md / I've read CONTRIBUTING.md.
问题类别 · Category

账号 / 登录 · Account / Login(疑似服务端 CDN 证书配置问题,非客户端缺陷)

涉及的 Agent 框架 · Agent framework

不涉及框架 · Not framework-specific(桌面端登录/订阅链路)

严重程度 · Severity

阻塞使用 · Blocking —— OAuth 登录与 coding-plan 订阅接口全部失败;已配置 API key 的模型会话不受影响

复现频率 · Reproducibility

必现 · Always(自 2026-09-17 10:05 起每次必失败)

问题描述 · Description

自 2026-09-17 10:05(UTC+8)起,ZCode 桌面端登录 bigmodel 账号(OAuth)以及 coding-plan 订阅相关接口全部失败。客户端日志统一报 fetch failed,底层错误为:

Error [ERR_TLS_CERT_ALTNAME_INVALID]: Hostname/IP does not match certificate's altnames: Cert does not contain a DNS name

排查确认:登录链路域名 zcode.z.ai(如 https://zcode.z.ai/api/v1/oauth/token)当前解析到 CDN 边缘节点,而这批节点在 443 端口返回的 TLS 证书 SAN(证书里"这张证书给哪些地址用"的清单)只包含两个 IP 地址,不含任何 DNS 域名,因此所有按域名 zcode.z.ai 校验证书的客户端都会在握手阶段失败。

对照:模型 API 通道 open.bigmodel.cn 证书正常(*.bigmodel.cn),所以 API key 模式的会话完全不受影响,故障仅限登录/订阅链路。像是今天上午服务端有一次证书/CDN 变更把域名证书换成了按 IP 签发的证书。

复现步骤 · Steps to reproduce
  1. 桌面端 bigmodel 家族使用 OAuth(coding-plan)模式
  2. 触发账号登录或任意订阅信息刷新
  3. 请求失败,日志中 oauth.startOAuthWithPollingcoding-plan-subscription.* 等 RPC 全部 fetch failed

任意 HTTPS 客户端直连即可复现(不依赖 ZCode):

curl -v https://zcode.z.ai/api/v1/oauth/token
# TLS 握手直接失败,HTTP 状态码 000
期望表现 · Expected behavior

OAuth 登录与订阅接口正常返回;zcode.z.ai 各节点出示包含 zcode.z.ai 域名的有效证书。

实际表现 · Actual behavior

TLS 握手阶段失败(证书不含 DNS 名称),登录与全部 coding-plan 订阅接口不可用,从 2026-09-17 10:05 持续至今(12 小时+)。

ZCode 版本 · ZCode version

桌面端 3.12.3(Windows)

设备 / 系统 · Device / OS

Windows 11(10.0.26200)· 中国大陆家宽网络

截图 / 录屏 / 日志 · Screenshots / Recordings / Logs

DNS 解析(两个公共 DNS 结果一致,非本机 DNS 污染):

$ nslookup zcode.z.ai 223.5.5.5
名称:    zcode.z.ai.a1.initaa.com      ← CNAME 指向 CDN 调度域
Addresses:  61.170.79.151 / 61.170.79.127 / 61.170.79.183 / 61.170.79.125
(119.29.29.29 腾讯 DNS 返回相同结果)

问题证书本体(SAN 只有 IP,没有域名):

$ echo | openssl s_client -connect zcode.z.ai:443 -servername zcode.z.ai | openssl x509 -noout -text
        Subject:                                ← subject 为空
        X509v3 Subject Alternative Name: critical
            IP Address:117.55.193.154, IP Address:2406:CB42:0:2018:0:0:0:2
                                              ^^^ 只有两个 IP,无任何 DNS 名

对照正常通道 open.bigmodel.cn(模型 API 不受影响的原因):

$ echo | openssl s_client -connect open.bigmodel.cn:443 -servername open.bigmodel.cn | openssl x509 -noout -subject -ext subjectAltName
subject=CN=*.bigmodel.cn
X509v3 Subject Alternative Name:
    DNS:*.bigmodel.cn, DNS:bigmodel.cn

本地已排除的因素:

  • hosts 文件无 bigmodel / z.ai 相关条目
  • 系统代理关闭(ProxyEnable=0
  • 备用域 zcode.chatglm.site 同期连接超时

客户端日志统计~/.zcode/v2/logs/):

日期 ERR_TLS_CERT_ALTNAME_INVALID 出现次数
09-11 ~ 09-16 0
09-17 84(首次 10:05:53)

受影响接口:oauth.startOAuthWithPollingcoding-plan-subscription.getBillingDiscount / getManualClaimPlanPreviews / getStaticTeamProducts / getEnterprisePricingclient-scenes.list

修复建议:给 zcode.z.ai 的 CDN 边缘节点(initaa.com 调度的 61.170.79.x 及对应 IPv6)重新部署包含 *.z.aizcode.z.ai DNS SAN 的域名证书;或回滚今天上午的证书变更。

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with curl against https://zcode.z.ai/api/v1/oauth/token and inspect the certificate with openssl s_client using SNI zcode.z.ai. Compare the certificate SAN with the reported open.bigmodel.cn certificate and the listed CDN addresses. Done means OAuth and coding-plan requests complete successfully with a certificate containing zcode.z.ai or an appropriate *.z.ai DNS SAN.

Written by the indexing model from the issue text.

Assessment

Domain
authentication, cloud, networking, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.