我已经在我的 keystore 和信任库中添加了证书,然后尝试使用 spring boot 调用 https 端点。获取以下日志。对 ssl 日志了解不多。因此向社区寻求帮助。
Debug模式下的 SSL 日志:
[OUT] http-nio-8080-exec-4, WRITE: TLSv1.2 Handshake, length = 80
[OUT] http-nio-8080-exec-4, READ: TLSv1.2 Alert, length = 2
[OUT] http-nio-8080-exec-4, RECV TLSv1.2 ALERT: fatal, handshake_failure
[OUT] %% Invalidated: [Session-1, TLS_RSA_WITH_AES_256_CBC_SHA256]
[OUT] http-nio-8080-exec-4, called closeSocket()
[OUT] http-nio-8080-exec-4, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
最佳答案
以上问题已修复。实际上,通过 spring 设置的 SSL 上下文在握手期间无法发送客户端证书,我发现的原因是我的 Keystore pwd 与私钥密码不同。尽管在通过 spring 加载 keystore 期间,我为两者提供了正确的 pwssword,但它仍然无法根据私钥密码提取证书。
在 key 生成过程中为 keystore 和私钥提供相同的密码后解决。
关于java - 我们正在尝试建立 2 路 SSL 连接。收到握手错误。附上日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49310022/