TLS 客户端如何处理中间证书的两份副本

How does the TLS client handle two copies of an intermediate certificate

TLS 服务器配置为在 TLS 握手时发送叶证书和中间证书。 TLS 客户端将在中间证书和根证书的帮助下验证服务器叶证书的信任链。根证书必须存在于客户端本地,服务器叶证书必须从服务器发送。但是,如果中间证书本地存在于客户端并从服务器发送 - 在这种情况下,有两个中间证书副本可用于验证过程。将选择中间证书的哪个副本来验证信任链?

这取决于证书链引擎的具体实现,不在 TLS 范围内。证书链引擎通过使用所有可用信息构建尽可能多的链。建立完所有的链后,CCE剔除重复的链,然后根据内部算法,选择最好的链用于进一步的操作。

在某些情况下,本地中间证书可能比从 TLS 握手收到的证书更好。在这种情况下,不使用从 TLS 收到的中间证书。