证书链是 TLS 证书信任验证的路径,由根证书、中间证书和站点证书组成。浏览器通过内置的根证书库逐级验证,确认站点证书由可信的证书签发机构(CA)签发。链路中间任何一环缺失,验证就会失败。
第 16 期介绍过,TLS 证书由证书签发机构(CA)签发,浏览器通过内置的根证书信任库验证证书。验证不是一步完成的:签发站点证书的 CA 通常不是根证书本身,而是受根证书信任的中间 CA。一张站点证书的信任,依赖从根证书到中间证书再到站点证书的整条链路,这就是证书链。
浏览器验证站点证书时,会沿证书链向上查找:站点证书由某中间 CA 签发,该中间 CA 的证书又由根 CA 签发,根 CA 的证书内置在浏览器中。只有整条链都能追溯到一个受信任的根证书,验证才算通过。
CA 体系使用中间证书是为了保护根证书:根证书的私钥一旦泄露影响极大,日常签发工作交给中间 CA,可以随时撤销或替换中间证书。服务器在提供站点证书时,必须同时附上中间证书;只给站点证书而不给中间证书,浏览器无法完成验证,会显示安全警告。