在 SSL 通信期间,服务器将其证书发送给客户端进行身份验证。
客户端也可以选择发送其证书,以进行客户端身份验证。
我的问题是,服务器(或客户端)是将整个证书链发送给客户端(即签名证书),还是仅发送其自己的证书?
我注意到通常只发送其自己的证书,但我想知道它是否可以配置,或者将整个证书链发送给另一方是否没有意义。
谢谢
答案1
它是可配置的。
任何对方已知的证书都不需要发送(但需要注意的是,certificate_list 证书中的每个证书都必须直接证明其前面的证书,除了第一个没有前面证书的证书)
发送根证书是没有意义的,因为假设对方必须已经拥有根证书才能在任何情况下验证它。至于中间证书,这取决于您的特定证书链。
答案2
回答关于客户端的部分,当服务器请求客户端证书时,它会发送它识别的 CA 列表。客户端只需将其证书链发送给其中一个已识别的 CA。