标准答案
- 证书过期或尚未生效时,客户端会认为当前时间不在证书有效期内;服务器和客户端的系统时钟错误也会触发类似问题。
- 访问域名必须匹配证书的 Subject Alternative Name。把 IP、内部域名或另一个子域名指向同一证书时,主机名校验会失败。
- 服务端通常需要同时下发站点证书和中间证书。只部署叶子证书会让部分客户端无法构建到根证书的信任链。
- 排查时先确认实际请求的域名、SNI、证书有效期、SAN、完整链和客户端信任库,再判断是否为代理或网关替换了证书。
- 修复应通过正确续签、完整链部署和发布前探测完成,不能通过客户端跳过证书校验绕过。
题目解析
同一域名在 CDN、负载均衡、服务网格和源站上可能有不同证书。只有从实际失败网络路径观察到的证书才是排查对象。
部分老旧运行时的根证书库较旧,可能在新证书链发布后先出现兼容问题,需要把运行时版本纳入排查。
常见误区
- 只检查证书文件存在,不检查访问域名和 SAN 是否对应。
- 只部署站点证书,遗漏中间证书链。
- 在生产代码里设置忽略 TLS 验证来“修复”调用失败。