KNOWLEDGE ARTICLE
证书链 是什么?
TLS 信任链
从网站证书经中间证书追溯到受信任根证书的验证路径。
核心解释
服务器通常发送网站证书和所需的中间证书,客户端再连接到本地信任的根证书。缺失中间证书、域名不匹配或签名无效都可能导致验证失败。
证书链如何把网站证书连接到信任根
网站证书通常不是由根 CA 直接签发,而是由一个或多个中间 CA 签发。客户端验证每一级证书签名、用途、有效期和约束,最终找到系统信任库中的根证书。根证书一般不由服务器发送,因为客户端已经持有并决定是否信任它。
服务器应发送网站证书和客户端构建路径所需的中间证书。缺少中间证书时,某些浏览器可能通过缓存补全而看似正常,新的设备、命令行工具或受限网络却可能验证失败,这类差异容易让部署问题长期被忽略。
客户端构建信任路径时检查什么
- 网站证书的签发者应与下一张中间证书主体对应,并通过签名验证确认内容未被修改。
- Basic Constraints、Key Usage、名称约束和策略等扩展限制证书能否作为 CA、可以签发什么以及用于何种目的。
- 路径中每张证书都要处于有效期,算法和密钥也需要符合客户端当前安全策略。
- 同一中间证书可能存在交叉签名路径,客户端会根据自己的信任库和构建算法选择可接受路径,因此不同旧设备结果可能不同。
链不完整和顺序错误如何排查
排查应先取得服务器实际发送的证书列表,再检查叶证书域名、签发者与中间链。常见问题包括只安装叶证书、混入无关根证书、发送顺序异常、使用过期交叉签名以及 CDN 与源站部署不同链。
修复后应从干净客户端、多个 TLS 库和不同网络验证,避免本机缓存掩盖问题。自动续期流程也要部署完整链文件,而不是每次更新时只替换叶证书。
实际应用与信息解读
完整取得服务器证书链后,可以确定发送了哪些中间证书,并结合本地信任库验证路径。单次客户端验证通过说明该环境接受当前路径,不自然保证所有旧设备与嵌入式客户端兼容。
链数据未知时应避免直接写“配置完整”。若明确缺少必要中间证书,可以推测部分客户端可能出现连接警告;实际影响范围仍取决于客户端缓存和信任库。部署报告还应注明测试所用客户端与信任环境。
重点关注
链完整是跨设备正常访问的基础,但只表示连接身份验证成功,不代表页面内容没有风险。
常见问题
服务器需要发送根证书吗?
通常不需要。根证书由客户端信任库提供,服务器主要发送叶证书和必要中间证书。
为什么我的浏览器正常,检测工具却说链不完整?
浏览器可能缓存或自动下载了中间证书,而干净客户端无法补全。应检查服务器实际发送内容。
证书链越长越安全吗?
不是。链长反映签发结构,安全性取决于每级算法、约束、密钥保护和信任策略;不必要的链还会增加握手数据。