网站证书域名不匹配:如何判断是服务器问题还是代理分流问题

浏览器提示“请求的主机与 TLS 证书中的主题备用名称(SAN)不匹配”,通常意味着当前连接收到的证书不适用于正在访问的域名。原因可能在服务器、DNS、CDN 配置或本地代理链路,不能仅凭错误页面判断故障位置。
本文记录一种较容易误判的情况:域名和 Cloudflare Worker 均配置正常,但本地代理将请求送往了另一条 CDN 路径,最终返回了不属于目标域名的证书。
现象与结论
故障环境中出现了以下差异:
- 通过系统代理访问时,页面显示 Fastly 路由错误和证书 SAN 不匹配;
- 绕过代理直接访问时,网站返回
200 OK,响应头中的服务器为 Cloudflare; - 直连取得的证书包含目标域名,而代理链路取得的证书指纹不同;
- 本机代理端口由 Xray 进程监听。
这些证据表明,请求在到达 Cloudflare Worker 之前已经被代理链路改道。Fastly 的文档也将请求主机名与证书 SAN 不一致列为路由错误的一种表现。
第一步:核对 DNS
先分别查询系统 DNS 和公共 DNS。以下命令适用于 Windows PowerShell:
Resolve-DnsName blog.monetlabs.art -Type AResolve-DnsName blog.monetlabs.art -Server 1.1.1.1 -Type AResolve-DnsName blog.monetlabs.art -Server 8.8.8.8 -Type A如果公共 DNS 和权威 DNS 都指向预期平台,而只有本机结果不同,问题更可能位于本机 DNS 缓存、代理 DNS 或网络服务商的解析链路。
对于 Cloudflare Worker 自定义域名,Cloudflare 会创建相应的 DNS 记录并签发证书。自定义域名状态正常时,不宜在缺少其他证据的情况下反复删除证书或重建 Worker。
第二步:对比直连与代理结果
在设置了 HTTP_PROXY 或 HTTPS_PROXY 的终端中,普通 curl 通常会沿用代理:
curl.exe -I https://blog.monetlabs.art/可以使用 --noproxy 做一次仅用于诊断的直连对比:
curl.exe --noproxy "*" -I https://blog.monetlabs.art/若普通请求失败,而直连请求返回 200,应优先检查代理节点、路由规则和代理 DNS。若两种方式都失败,则仍需继续检查服务端证书、Cloudflare 自定义域名状态和权威 DNS。
第三步:确认代理来源
环境变量和 Windows 系统代理可以分别检查:
Get-ChildItem Env: | Where-Object Name -Match '^(HTTP|HTTPS|ALL|NO)_PROXY$'netsh winhttp show proxyGet-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | Select-Object ProxyEnable, ProxyServer, ProxyOverride如果代理地址是本机端口,还可以确认监听该端口的进程:
$connection = Get-NetTCPConnection -LocalPort 10808 -State ListenGet-Process -Id $connection.OwningProcess端口号需要替换为实际代理端口。进程信息只能说明流量由哪个客户端接管,最终仍需结合客户端日志和路由规则确认具体出口。
处理方法
确认“直连正常、代理异常”后,可以按影响范围选择处理方式:
- 在代理客户端中为目标域名设置
direct规则; - 将规则放在会匹配该域名的通用代理规则之前;
- 或在系统代理绕过列表中加入目标域名及其子域名;
- 重新打开浏览器标签页,避免复用旧的 TLS 连接;
- 再次核对状态码、响应平台和证书 SAN。
v2rayN 的路由规则按顺序匹配,前面的规则命中后,后续规则不再生效。因此,新增的域名直连规则需要放在更宽泛的代理规则之前。
不建议采用的处理
- 不应关闭浏览器的证书校验来绕过错误;
- 不应因为看到 Fastly 错误页,就直接认定网站部署在 Fastly;
- 不应在权威 DNS 和直连证书均正常时反复重建 Cloudflare Worker;
- 不应只清理浏览器缓存,而忽略代理客户端自身的 DNS 和路由缓存。
验证清单
处理完成后,至少确认以下结果:
- 系统 DNS 与公共 DNS 的结果一致;
- 浏览器不再显示证书警告;
- 证书 SAN 包含正在访问的完整域名;
- 首页和主要页面返回预期状态码;
- 开启代理和关闭代理时均能到达预期平台。
参考资料
封面图片:Kevin Ache / Unsplash。
