证书错误与系统时间不对怎么办?

先说结论

证书错误最先要查的是系统时间:证书有有效期,电脑时间偏差较大时,有效的证书也会被判成未生效或已过期。时间正常后仍报错,再分辨是节点证书确实过期、域名不匹配,还是本机安全软件改动了连接,不要靠关闭验证来绕过。

你遇到的现象

节点握手失败,或者浏览器提示证书不受信任。

打开客户端,节点测试一路失败;或者在浏览器里打开某个网站,弹出一整页红色警告,说“您的连接不是私密连接”。这两种看上去毫不相干的现象,背后常常是同一个小问题:你的电脑认为现在是另一个时间。搜索证书错误的人,十有八九最先该查的就是这一项。

为什么系统时间会引起证书错误

加密连接依赖数字证书,而每张证书都标明了生效时间和到期时间。校验证书的一方,会拿本机当前时间去对照这个区间:

本机时间 校验结果 常见表现
比实际时间早很多 判为证书尚未生效 浏览器提示日期无效
与实际时间一致 正常通过 无提示
比实际时间晚很多 判为证书已过期 节点握手失败、浏览器警告

所以,遇到证书错误,第一步永远是看一眼系统时间,而不是急着怀疑节点。更多关于加密握手的背景,可看词典里的 TLS。

遇到证书错误,先自查这几种时间陷阱

这一步不需要任何专业知识:

  1. 打开系统的日期和时间设置。
  2. 确认“自动设置时间”和“自动设置时区”都已开启。
  3. 如果之前被手动改过,关掉再打开自动设置,让系统立即同步一次。
  4. 同步后完全退出代理客户端再重新打开,让它重新握手。
  5. 虚拟机、双系统用户要注意,不同系统之间可能互相拨乱硬件时钟,需要分别确认。

手机同样适用。在 iOS 上把日期与时间设为自动,在安卓上打开自动确定日期和时间即可。

哪些情形最容易让时间跑偏

时间偏差并不都是“手滑改错”造成的,下面这些情形也很常见:

  • 主板电池电量不足的旧电脑,断电后时钟会回到很早的日期。
  • 电脑装了 Windows 与 Linux 双系统,两边对硬件时钟的理解不同,来回切换后会差几个小时。
  • 手机或电脑长期没联网,自动同步没有机会执行。
  • 跨时区旅行后,只改了时区没有同步,或反过来。
  • 虚拟机暂停恢复后,内部时钟没有追上现实时间。

遇到节点在某天突然全部握手失败、而你没有改过任何设置,不妨先对着手机上的时间看一眼电脑时间。差一个小时的,多半是时区问题;差好几天的,多半是时钟回到了旧日期。

第二步:分清是哪一种证书错误

时间正常之后仍然报错,就要看提示的具体原因。常见有三类:

  • 日期无效:回到上一步,确认时间;若时间已经对了,还可能是证书确实过期了。
  • 域名不匹配:证书是为另一个域名签发的,多半是节点配置里填的域名有误。
  • 颁发机构不被信任:证书链不完整,或者被本机安全软件、公共网络替换过。

这里要说明节点证书错误和 tls证书过期的区别:前者说的是证书本身出了问题,后者只是其中一种,即证书过了有效期。无论哪一种,证书部署在节点的服务器上,只有提供方才能更新。

本机环境造成的证书错误

排除了时间和节点之后,再看自己这一侧有没有东西在“半路改包”:

  1. 安全软件的网络防护:有些会对加密流量做检查,并用自己的证书替换,导致证书不被信任。暂时关闭对照一下。
  2. 公共 Wi-Fi 的登录页:酒店、咖啡馆的网络会在你登录前拦截请求,同样会出现证书警告。完成登录后再试。
  3. 公司或学校网络:可能部署了统一的检查设备,个人无法绕开。
  4. 客户端自己的设置:例如服务器名称、域名等字段填错。v2rayN 的发布说明置顶提到,跳过证书验证的 allowInsecure 参数已被移除,证书有问题的节点要改用别的方式,不能再靠关闭验证来凑合,这一点可以参考 v2rayN 连不上怎么办。

把证书错误的线索记下来

向节点提供方或社区求助时,只说“证书错误”很难被定位。建议记下这几项再去反馈:

  1. 出错的时间点,以及当时电脑显示的系统时间与时区。
  2. 提示里的原因关键词,例如日期无效、域名不匹配、颁发机构不被信任。
  3. 使用的客户端类型,以及换网络、换设备后的差别。
  4. 你已经做过的排查,比如是否校准过时间、是否关闭过安全软件做对照。

线索齐全,对方才能迅速判断是证书过期还是配置问题,你也能少来回几轮。

为什么不要靠“忽略证书错误”应付

证书校验的价值,在于确认你连到的确实是预期的服务器。忽略它,等于放弃了这层保护,请求可能被冒充的服务器接收。遇到证书错误,正确的次序是:校准时间,换一个网络对照,暂时关闭安全软件对照,仍无法解决就联系节点提供方。

怎么确认问题真的解决了

检查项 做法 正常表现
系统时间 对照手机或网络时间 差异在合理范围内
浏览器 重新打开出错的网站 不再弹出证书警告
节点 重新测试或直接访问网页 握手成功,网页能打开
换网络 用手机热点试一次 两个网络表现一致

节点测试仍然全部失败的话,转到 节点超时怎么办,那里有更完整的顺序;如果订阅都没能更新,则看 订阅导入失败怎么办。

下一步怎么做

证书错误听着吓人,但绝大多数时候处理起来很朴素:先校准时间,再判断证书问题出在哪一端。若问题确实出在节点证书上,把发生时间、客户端类型和错误提示整理好,反馈给提供方即可。仍然连不上,回到 梯子连不上怎么办 逐层检查,需要核对服务状态时,可以到 服务状态导航 查看官方状态页。

这篇没有覆盖的

  • 本文只讲怎么校准时间和判断证书问题的来源,不教任何跳过证书验证的做法。
  • 节点自身的证书过期、域名不匹配只能由节点提供方修复,客户端侧无法解决。
  • 各系统设置页的菜单名称会随版本变化,具体入口请以你当前系统界面为准。

证书错误常见问题

为什么系统时间不对,会出现证书错误?

数字证书都有生效时间和到期时间,校验方要拿当前时间去对照。电脑时间比实际时间早得多,会判断证书还没生效;晚得多,就判断证书已经过期。两种情况都会让本来有效的证书被拒绝,表现为握手失败或浏览器警告。

时间只差几分钟,也会影响节点连接吗?

是否受影响取决于协议和对端的容忍范围,有些协议对时间偏差要求很严格,差几分钟就可能握手失败,有些则宽松得多。无论哪种,把系统时间设成自动同步并保证时区正确,都比靠自己估算时间可靠。

浏览器提示证书不受信任,是节点的问题吗?

不一定。先看提示里的具体原因,是日期无效、域名不匹配,还是颁发机构不被信任。日期无效先校准时间;域名不匹配和颁发机构不被信任,可能来自节点配置,也可能是公共网络或安全软件在中间改动了连接,需要换网络或暂时关闭安全软件做对照。

可以直接选择忽略证书错误继续访问吗?

不建议。证书校验的作用是确认你连的确实是目标服务器,忽略后无法判断对方是不是真的,等于放弃了保护。遇到证书错误应该先找原因,校准时间、换网络对照,仍无法解决就联系节点提供方核对配置。

节点的 TLS 证书过期了,我自己能修吗?

不能。证书部署在节点所在的服务器上,只有节点提供方才能更新。你能做的是先排除本机时间和网络的原因,确认后向对方反馈:写明发生时间、客户端类型和错误提示,有助于对方尽快定位。

接着读

文中出现的术语

接下来去哪儿?

找官方入口去网址导航,想核对仓库和版本看GitHub 项目导航;需要现成的机场,机场目录收了 28 家的价格与线路资料,性价比机场、便宜机场、VPN 机场分别有专项页。