文章

代理客户端提示证书错误怎么办?系统时间、服务器名称与 TLS 排查

机场节点提示证书过期、服务器名称不匹配或证书不受信任时,先记录完整错误,再确认是哪一次连接失败。订阅下载、客户端连接节点、浏览器访问目标网站,是三个不同环节。把它们混在一起处理,容易改错配置。

本文适用于常规 TLS 证书验证问题。采用其他认证方式的配置,应查阅对应协议文档,不能把本文的字段解释直接套用。本文提供诊断方法,不代表对任何机场完成了安全审计或实际测评。

第一步:确定错误出现在哪里

看到错误的位置 先记录什么 下一步核对对象
更新订阅时 更新方式、目标主机名、错误摘要 订阅服务的 HTTPS 连接
启动或使用节点时 节点别名、协议、内核版本、首条错误 客户端与节点的 TLS 配置
浏览器打开网站时 地址栏域名、浏览器错误代码 浏览器与目标网站的证书验证

例如,浏览器只在一个网站显示证书问题,但其他网页通过同一节点访问正常,就应先围绕该网站收集证据。这个对照能缩小范围,却不能单独证明节点或网站一定没有其他问题。

第二步:核对系统时间与证书有效期

检查设备的日期、时间和时区是否正确,尤其留意休眠恢复、虚拟机或双系统切换后的时间。不要把系统日期故意改回过去,只为让过期证书暂时通过。

Mozilla 的官方说明指出,错误的系统时间可能造成证书有效期判断异常;时间正确时,仍需由网站维护者检查证书是否过期或配置有误。Mozilla:时间相关的证书错误

这一步完成后,重新执行原来失败的同一操作。保留修正前后的结果,避免同时更换节点和 DNS,导致无法判断是哪项变化起作用。

第三步:核对服务器名称,不要按节点昵称填写

节点昵称通常用于方便识别,例如“某地区节点”。它不等于 TLS 验证要使用的主机名,也不一定与连接地址完全相同。需要比较的是服务方当前配置与客户端实际加载的字段。

sing-box 文档说明,常规 TLS 配置中的 server_name 用于核对返回证书中的主机名,并在适用时参与握手中的服务器名称指示。sing-box:TLS 配置

mihomo 的相关字段则可能叫 sniservername,具体取决于协议;其文档还分别列出证书指纹 fingerprint 与客户端指纹 client-fingerprint。这些字段用途不同,不能仅凭名称相似就互相替换。mihomo:TLS 配置

如果近期手动改过地址、服务器名称或订阅转换规则,先与提供方的完整兼容配置对照。不要随意填一个知名网站域名来消除错误;服务器名称必须与实际部署方式相符。

第四步:区分不受信任与名称不匹配

浏览器报告不受信任的签发者,和证书有效期异常是不同线索。Mozilla 将未知签发者、自签名证书等错误分别解释,并建议区分问题发生在单个网站还是多个网站。Mozilla:证书错误代码排查

对于代理客户端,也应先保留原始错误文本,再查所用内核的对应说明。不要仅凭界面中的“TLS 错误”四个字确定原因,更不要从论坛下载陌生根证书后直接加入系统信任。

工作设备或受管理网络如果存在特定证书安排,应向管理员确认预期配置。自己的设备则可以比较另一条已知正常网络,但不应把一次更换网络后的成功当作最终归因。

为什么不把“跳过证书验证”作为通用修复

sing-box 的 insecure 会接受任意服务器证书;mihomo 的 skip-cert-verify 用于跳过证书验证。它们改变的是验证行为,不是修复证书本身。即使这样暂时连通,也不能证明连接到了预期服务端。字段含义见上文两份官方 TLS 文档。

更有用的处理顺序是:确认时间、核对服务方配置、保留错误证据,再由相应维护者修复证书或部署问题。需要专门信任设置的环境,也应使用来源可信、可核验的配置与说明。

发给服务方的最小排查记录

  • 故障时间、操作系统、客户端和实际内核版本。
  • 报错发生在订阅更新、连接节点还是访问网站。
  • 不含凭据的节点别名、协议和错误摘要。
  • 是否刚更新订阅、修改配置或切换网络。
  • 系统时间是否正确;同一操作在对照环境中是否复现。

不要公开完整订阅链接、密码、UUID 或包含令牌的日志。向官方支持提交必要材料时,也先去除无关个人信息。

修复后怎样验收

恢复证书验证应有的设置,重复原来失败的操作,再完成一次真实网页访问或目标应用任务。确认错误不再出现,并在重启客户端后复查。仅看到一次延迟测试成功,不能替代这些检查。

阅读机场推荐或进行试用验收时,也可以把“常规安全配置下是否能稳定完成目标任务”列入记录,避免只比较下载速度。

继续阅读:连接超时排查订阅更新失败机场推荐选购指南

搜索文章

正在加载搜索…