我们可以将多个证书密钥对附加到单个TLS客户端吗?例如:-
是否可以让-client-A有一个由CA-1签名的证书-1和由CA-2签名的证书-2,依此类推。假设每个证书都有自己的私钥对。
因此,当Client-A根据服务器中预先安装的CA证书向TLS服务器(例如Server-A(发送N个证书密钥对时,会导致客户端的certificate-1验证成功,certificate-2验证失败(服务器没有CA-2证书(。如果上述情况是可能的,结果会是什么?TLS握手成功还是失败?
此外,是否有人可以分享一个如何使用openssl命令或以编程方式(例如在C程序中(附加多个证书密钥对的示例。
客户端不能向服务器发送多个叶证书,服务器会选择它喜欢的一个。相反,客户端将发送包括必要证书链的单叶证书,并提供由该单叶证书签名的CertificateVerify消息,作为匹配私钥所有权的证明。
这意味着客户端需要决定发送哪种可能的证书。服务器可以发送一个接受的CA列表来指导客户端,但即使这样也可能有多个证书。在这种情况下,客户端需要以某种方式决定发送哪一个,例如通过询问用户。