使用Java的SSL握手错误
我正在尝试使用SSL证书将JM客户端连接到JMX服务器。使用Java的SSL握手错误
但不幸的是,这个连接给出了SSL握手错误。当我尝试调试这个时,使用-Djavax.net.debug=all
标志,我在java客户端上得到以下错误消息。
2016-07-15T13:29:50.02-0700 [APP/0] OUT RMI RenewClean- [10.200.0.27:44445,[email protected]],READ:TLSv1.2工作警报,长度= 2
2016-07-15T13:29:50.02-0700 [APP/0] OUT RMI RenewClean- [10.200.0.27:44445,[email protected]],RECV TLSv1 ALERT:致命的,handshake_failure
2016-07-15T13:29:50.02-0700 [APP/0] OUT RMI RenewClean- [10.200.0.27:44445,[email protected]],称为关闭套接字()
2016-07-15T13:29:50.02-0700 [APP/0] OUT RMI RenewClean- [10.200.0.27:44445,[email protected]],处理异常:javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure
当我改变了客户到别的东西,像JConsole的,连接使用相同的SSL证书和信任,这表明没有什么不对的SSL证书或工作正常域连接到。
由于错误的TLS版本类型,似乎握手失败。
我的客户端正在使用TLS版本1的Java7上运行,而服务器运行的是使用TLS 1.2版的Java8。
检查这个oracle blog,其中提到Java8将默认使用TLS版本1.2
所以,当我升级我的客户端使用Java8,这个问题得到了解决。
希望,这也有助于其他人。
正如你注意到自己:有客户工作,你的客户不是其中之一。这意味着问题出现在客户的某个地方,如果没有提供有关该客户的更多信息,则无法为您提供帮助。请参见[如何创建最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 –