2016-07-15 90 views
1

我正在嘗試使用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證書或工作正常域連接到。

+0

正如你注意到自己:有客戶工作,你的客戶不是其中之一。這意味着問題出現在客戶的某個地方,如果沒有提供有關該客戶的更多信息,則無法爲您提供幫助。請參見[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –

回答

1

由於錯誤的TLS版本類型,似乎握手失敗。

我的客戶端正在使用TLS版本1的Java7上運行,而服務器運行的是使用TLS 1.2版的Java8。

檢查這個oracle blog,其中提到Java8將默認使用TLS版本1.2

所以,當我升級我的客戶端使用Java8,這個問題得到了解決。

希望,這也有助於其他人。