标准答案

  1. 证书过期或尚未生效时,客户端会认为当前时间不在证书有效期内;服务器和客户端的系统时钟错误也会触发类似问题。
  2. 访问域名必须匹配证书的 Subject Alternative Name。把 IP、内部域名或另一个子域名指向同一证书时,主机名校验会失败。
  3. 服务端通常需要同时下发站点证书和中间证书。只部署叶子证书会让部分客户端无法构建到根证书的信任链。
  4. 排查时先确认实际请求的域名、SNI、证书有效期、SAN、完整链和客户端信任库,再判断是否为代理或网关替换了证书。
  5. 修复应通过正确续签、完整链部署和发布前探测完成,不能通过客户端跳过证书校验绕过。

题目解析

同一域名在 CDN、负载均衡、服务网格和源站上可能有不同证书。只有从实际失败网络路径观察到的证书才是排查对象。

部分老旧运行时的根证书库较旧,可能在新证书链发布后先出现兼容问题,需要把运行时版本纳入排查。

常见误区

  • 只检查证书文件存在,不检查访问域名和 SAN 是否对应。
  • 只部署站点证书,遗漏中间证书链。
  • 在生产代码里设置忽略 TLS 验证来“修复”调用失败。

作者信息