如果我在仅服务器身份验证中正确理解 SSL/TLS,握手后,服务器会向客户端发送它的公钥和由 CA 签名的数字签名证书。如果客户端有这个 CA 的公钥,它就可以解密证书并与服务器建立信任。如果它不信任 CA,则通信停止。在客户端需要向服务器进行身份验证的 2 路 SSL 中,在客户端收到公钥和数字签名证书后,客户端将通过其公钥和数字签名证书发送服务器。服务器将检查它是否有客户端证书的公钥,如果有,它可以与客户端建立信任。我正在 weblogic 服务器上设置相互身份验证 [2 方式 ssl] [在这种情况下是客户端,调用出站到 Web 服务],第三方向我发送了数字签名的证书和证书链。为什么我需要这些。这不是握手后服务器回复的吗?
最佳答案
the server sends the client it's public key and a digitally signed certificate signed by a CA.
证书包含公钥。 key 不会额外发送。
If the client has this CA's public key, it can decrypt the certificate
证书未加密,由 CA 签名。因此,没有完成解密,但如果客户端拥有 CA 的证书(以及其公钥),则客户端可以验证此签名。但通常证书不是由浏览器信任的 CA 直接签名的,而是有中间证书。在这种情况下,服务器不仅会发送服务器证书,还会发送构建 trust chain 所需的所有中间证书。 .
then the client will send the server over it's public key and a digitally signed cert.
同样,公钥是证书的一部分。
the third party sent me a digitally signed cert and a certificate chain. Why do I need these.
第一个证书是客户端证书。构建 trust chain 需要链证书因为服务器不直接信任客户端证书的颁发者 CA,因此需要中间证书。
关于ssl - 2 路 SSL/TLS 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38615363/