使用Java的SSL握手错误

使用Java的SSL握手错误,java,ssl,jmx,truststore,Java,Ssl,Jmx,Truststore,我正在尝试使用SSL证书将java客户机与JMX服务器连接起来 但不幸的是,此连接会产生SSL握手错误。当我尝试使用-Djavax.net.debug=all标志调试时,我在java客户机上收到以下错误消息 2016-07-15T13:29:50.02-0700[APP/0]我们的RMI更新清理-[10.200.0.27:445,javax.RMI.ssl。SslRMIClientSocketFactory@305a99f7],读取:TLSv1.2警报,长度=2 2016-07-15T13:29

我正在尝试使用SSL证书将java客户机与JMX服务器连接起来

但不幸的是,此连接会产生SSL握手错误。当我尝试使用
-Djavax.net.debug=all
标志调试时,我在java客户机上收到以下错误消息

2016-07-15T13:29:50.02-0700[APP/0]我们的RMI更新清理-[10.200.0.27:445,javax.RMI.ssl。SslRMIClientSocketFactory@305a99f7],读取:TLSv1.2警报,长度=2

2016-07-15T13:29:50.02-0700[APP/0]我们的RMI更新清理-[10.200.0.27:445,javax.RMI.ssl。SslRMIClientSocketFactory@305a99f7],RECV TLSv1警报:致命,握手失败

2016-07-15T13:29:50.02-0700[APP/0]我们的RMI更新清理-[10.200.0.27:445,javax.RMI.ssl。SslRMIClientSocketFactory@305a99f7],称为closeSocket()

2016-07-15T13:29:50.02-0700[APP/0]我们的RMI更新清理-[10.200.0.27:445,javax.RMI.ssl。SslRMIClientSocketFactory@305a99f7],处理异常:javax.net.ssl.SSLHandshakeException:收到致命警报:握手失败


当我将客户端更改为其他类型(如JConsole)时,使用相同的SSL证书和truststore连接可以正常工作,这表明SSL证书或其连接到的域没有问题。

似乎握手失败是因为TLS版本类型不正确

我的客户机运行在使用TLS版本1的Java7上,而服务器运行的是使用TLS版本1.2的Java8

检查这个,它提到Java8将默认使用TLS版本1.2

因此,当我升级我的客户机使用Java8时,问题得到了解决


希望,这对其他人也有帮助。

正如你自己所注意到的:有些客户是有效的,而你的客户不是其中之一。这意味着问题出在你的客户身上,如果不提供更多关于这个客户的信息,就不可能帮助你。看见