ssl - 2 路 SSL/TLS 配置

标签 ssl weblogic tls1.2 mutual-authentication

如果我在仅服务器身份验证中正确理解 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/

相关文章:

node.js - 如何修复与Javascript连接的Python中的SSL错误?

ssl - 在 OpenJDK 11 中启用 SSL 证书吊销检查

javascript - Ajax 和表单例份验证

jakarta-ee - 具有多个 WebLogic 实例的 log4j

Python-Requests : direct . pem 固定自签名证书

android - 应用被 Google Play 拒绝

ant - 将 war 文件部署到托管 weblogic 服务器到给定的路径位置

android - Android 4.3 上的 javax.net.ssl.SSLHandshakeException

Android pre-lollipop 设备给出错误 "SSL handshake aborted: ssl=0x618d9c18: I/O error during system call, Connection reset by peer"

通过 OpenSSL 的 MySQL TLS 验证失败