受信任的根 CA 是否应该成为证书链的一部分?

mck*_*mck 7 ssl keystore jks ssl-certificate

我正在不同主机上的服务之间设置 2 路 SSL 通信。假设我有自己的 CA,名为 A。A 通过集中式 jks 受到我的所有服务的信任。现在假设我有由 A 签名的证书 B。当服务发送证书时,它们应该发送整个链 B - A,还是只发送 B?我相信两者都适用于大多数实现。

我试图在网上找到有关此问题的规范信息,但一无所获。

谢谢您的帮助

iva*_*eev 9

根据tls - 根据 RFC 5280 验证 SSL 证书链:我理解正确吗?- 信息安全堆栈交换

服务器应发送要使用的确切链;服务器被明确允许省略根 CA,但仅此而已。

参考(RFC 5246 - TLS v1.2,第 7.4.2 节 - 服务器证书):

证书列表

这是证书的序列(链)。发件人的证书必须位于列表中的第一位。随后的每个证书必须直接证明其前一个证书。由于证书验证要求根密钥独立分发,因此假设远程端必须已经拥有它才能在任何情况下验证它,则指定根证书颁发机构的自签名证书可以从链中省略。