如果我在仅服务器身份验证中正确理解SSL / TLS,则在握手之后,服务器会向客户端发送它的公钥以及由CA签名的数字签名证书。如果客户端具有此CA的公钥,则它可以解密证书并与服务器建立信任。如果它不信任CA,则通信停止。在客户端需要向服务器进行身份验证的双向SSL中,在客户端收到公钥和数字签名证书后,客户端将通过其公钥和数字签名证书发送服务器。服务器将检查它是否具有客户端证书的公钥,如果有,它可以与客户端建立信任。我正在weblogic服务器上设置相互身份验证[2路ssl] [在这种情况下是客户端,呼叫出站到Web服务],第三方向我发送了数字签名证书和证书链。为什么我需要这些。这不是服务器在握手后回复的内容吗?
答案 0 :(得分:0)
服务器向客户端发送其公钥和由CA签名的数字签名证书。
证书包含公钥。密钥不会额外发送。
如果客户端具有此CA的公钥,则可以解密证书
证书未加密,由CA签名。因此,如果客户端具有CA的证书(并因此其公钥),则客户端可以不进行解密,但客户端可以验证此签名。但通常证书不是由浏览器信任的CA直接签名,而是有中间证书。在这种情况下,服务器不仅会发送服务器证书,还会发送构建trust chain所需的所有中间证书。
然后客户端将通过它发送服务器的公钥和数字签名的证书。
同样,公钥是证书的一部分。
第三方向我发送了数字签名证书和证书链。我为什么需要这些。
第一个证书是客户端证书。构建trust chain需要链证书,因为服务器不直接信任客户端证书的颁发者CA,因此需要中间证书。