一个网址突然弹出不私密连接的提醒,多数人的第一反应是“这个网站是不是有问题”,而这个提醒实际在说的是一件更窄的事:浏览器没能确认眼前这台服务器的身份。没确认的原因有三类,错误括号里那串英文代码就是在区分它们。
三种错误码各自说什么
| 错误码 | 通常说明什么 | 先做的一个动作 |
|---|---|---|
| ERR_CERT_DATE_INVALID | 证书上的有效期与本机时间对不上 | 换手机蜂窝网络访问同一网址,看是否还报错 |
| ERR_CERT_AUTHORITY_INVALID | 签发方不受信:自签证书或链路中被替换 | 确认这个网址是不是你自己管的设备页面 |
| ERR_CERT_COMMON_NAME_INVALID | 证书上的名字与你输入的域名不一致 | 只看域名主体部分,不要靠页面样子判断 |
三个码里只有一个可能是你自己机器的毛病,就是日期无效。证书本身有生效和到期时间,浏览器会拿本机时间去比对,所以时间跳到了几年前,或者几年前就没同步过,都会让一个本来正常的网站报错。分辨它只需换一台设备再访问一次:手机用蜂窝网络也报同样的错,问题在网站上;只有你这台电脑报,问题在时间上。时间同步的具体做法在第 191 篇里。
处理顺序上的两个常见误会
误会一:把“颁发者不受信”当成危险信号全部一刀切。路由器、光猫、NAS、打印机这些设备的网页后台默认用自签证书,它们的地址本来就不该被公共信任链认识,看到这一码是正常的。真正要区分的是地址:内网段地址上的自签证书属于自家设备,而一个对外营业的网站出现这一码,就要先想一下链路中间是不是有设备在替换证书。公共 Wi-Fi 的登录页就属于后者:它会临时接过你的请求,此时任何输入都可能被截下。
误会二:靠“导入根证书”把提醒关掉。自己管的设备确实可以这么做,但要明白导进去的是“允许这个签发者为任意网址作保”,而不是“只放行这一个网站”。一次导入会长期存在,之后这台设备签发的任何证书都会被你的浏览器信任。安全软件做加密连接扫描时也会往信任库里放自己的证书,原理相同,所以信任列表变长之后,真出现一个假证书时反而更难发现。
域名不匹配那一类,处理方式与其他两类不同:它不是你或这台设备能修的,也不建议继续访问。名字对不上有两种常见成因,一种是网站自己接错了 CDN 或者域名到期后解析指向了别人,另一种是仿冒站拿着一张真证书用在了另一个域名上。两种情形下,你要输入账号密码的那个页面都不应被认为可信。
最后一条能用的原则:报错本身不等于“有人正在攻击你”,它只说明身份没对上。但一旦点了继续访问,这条链路上就没有任何校验了,所以判断可以归结为一句话——这个页面上会不会留下你的口令、验证码或者文件。只要会,三个错误码里哪一个都不该继续。