用户遇到浏览器提示“证书无效”或“连接不安全”,通常是因为  SSL证书出现问题。这种情况既可能发生在你自己访问某个网站时,也可能发生在你自己搭建的服务器上。

按照以下  7  个步骤,由浅入深地快速定位问题所在:

第一步:检查设备系统时间

这是最常见也最容易忽略的原因。

      现象:手机或电脑的日期、时间、年份不准确(例如主板电池没电导致重置到了2000年)。

      原理:  证书有有效期。如果设备时间不在证书的“有效期”范围内,浏览器会认为证书已过期或未生效。

      操作:  检查任务栏右下角/状态栏时间,与手机时间对比。如果不对,开启“自动设置时间”并同步。

第二步:检查访问的网址

有时候是手误输错了网址。

      现象:  你想访问  `https://bank.example.com`,但输入成了  `https://bank.example.org`  或  IP  地址,或者把  `https`  输成了  `http`。

      原理:  证书是为特定域名颁发的。证书中包含的域名与浏览器地址栏中的域名必须完全匹配(包括  `www`  前缀)。

      操作:  仔细核对地址栏的  URL  是否正确,是否有拼写错误。

第三步:检查证书域名匹配性

如果你在搭建网站或配置服务器,需要检查配置的证书是否用对了地方。

      现象:  用  `https://192.168.x.x`  访问内网服务报错,或者用  `https://www.test.com`  访问但证书是  `www.other.com`  的。

      原理:SSL  握手时,服务器会发送证书给客户端。客户端发现证书里的  Common  Name  或  SAN  字段和访问的域名不一致,就会报错。

      操作:  点击地址栏的“不安全”或小锁图标  ->  查看证书,检查“颁发给”的域名是否与当前网址一致。

第四步:清除浏览器缓存或使用无痕模式

有时候是浏览器缓存了旧的证书信息或  HSTS  策略。

      现象:  同事都能打开,就你的浏览器报错,或者昨天能打开今天打不开。

      原理:  浏览器可能缓存了旧的、已被吊销的证书信息,或者开启了  QUIC  协议干扰。

      操作:

        1.    尝试按  `Ctrl  +  F5`  强制刷新。

        2.    打开浏览器的“无痕模式/隐私模式”(该模式不使用旧缓存)。

        3.    如果无痕模式能打开,则说明需要清除浏览器缓存和  SSL  状态。

第五步:检查中间证书是否完整

这个原因在自建网站中非常常见,通常服务器配置错误。

      现象:  手机浏览器打不开报错,但某些电脑浏览器能打开;或者在线检测工具提示“证书链不完整”。

      原理:  服务器只发了网站证书,没发中间证书。浏览器不认得不到信任链的证书。

      操作:  使用在线  SSL  检测工具(如腾讯云或阿里云的  SSL  检测工具,或  `myssl.com`)检测你的域名。如果提示“证书链不完整”或“缺少中间证书”,需要在服务器配置中补全证书链文件(通常需要将网站证书和中间证书合并为一个  `.crt`  文件)。

第六步:检查证书吊销状态

浏览器会检查证书是否被提前作废。

      现象:  访问时卡顿很久,然后报错,有时提示“证书已被吊销”。

      原理:  浏览器通过  OCSP(在线证书状态协议)查询该证书是否有效。如果证书颁发机构的  OCSP  服务器被墙(大陆访问部分境外  CA  时有发生)或挂掉,浏览器无法确认证书状态,出于安全考虑会报错。

      操作:

        1.    如果是自己访问境外网站,可能需要考虑网络环境问题。

        2.    如果是管理员,可以检查服务器是否启用了  OCSP  装订(OCSP  Stapling)来缓解此问题。

第七步:抓包或检查安全软件

某些软件会劫持流量。

      现象:  打开百度、淘宝等正规大网站也报证书无效。

      原理:  公司防火墙(如深信服)、抓包软件(Fiddler/Charles)、甚至某些杀毒软件开启了“SSL  扫描”功能。它们会生成一个中间人证书替换原网站证书,而这个证书不被浏览器信任。

      操作:

        1.    暂时退出杀毒软件或关闭防火墙的  HTTPS  扫描功能。

        2.    关闭  Fiddler/Charles  等抓包工具。

        3.    如果是公司网络,联系网络管理员确认是否进行了SSL证书解密。

总结一下排查思路

1.    看时间(最简单,修复也最快)。

2.    看域名(是不是输错了)。

3.    开无痕(排除缓存)。

4.    在线扫(如果网站是你的,用  SSL  检测工具查)。

5.    关代理/关软件(排除网络劫持)。

用户做完这几步,99%  的证书问题都能定位到原因。