我们正在尝试建立 2 路 SSL 连接。收到握手错误。附上日志
Posted
技术标签:
【中文标题】我们正在尝试建立 2 路 SSL 连接。收到握手错误。附上日志【英文标题】:We are trying to establish 2 way SSL connection. getting handshake error. log attached 【发布时间】:2018-08-24 21:18:40 【问题描述】:我在我的密钥库和信任库中添加了证书,然后尝试使用 spring boot 调用 https 端点。获取以下日志。在 ssl 日志上无法理解太多.. 因此向社区寻求一些帮助。
调试模式下的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
【问题讨论】:
端点是否支持 TLS 1.2? 是的,它支持 1.2 【参考方案1】:上述问题已修复。实际上,通过 spring 设置的 SSL 上下文在握手期间无法发送客户端证书,我发现的原因是我的 Keystore pwd 与私钥密码不同。虽然在通过 spring 加载密钥库期间,我为两者提供了正确的 pwssword,但它仍然无法根据私钥密码提取证书。
在我在密钥生成过程中为密钥库和私钥提供了相同的密码后解决。
【讨论】:
是的。我不知道他们为什么甚至提供私钥密码。它们根本没有得到很好的支持。以上是关于我们正在尝试建立 2 路 SSL 连接。收到握手错误。附上日志的主要内容,如果未能解决你的问题,请参考以下文章