2015-10-27 23 views
0

我有兩個問題,問題,同時連接到HTTPS站點在JDK 1.7

1)我得到以下異常試圖連接到服務器在JDK 1.7

javax.net.ssl.SSLProtocolException: Protocol violation: server sent a server key exchangemessage for key exchange RSA

服務器支持以下協議 - TLS_RSA_WITH_AES_256_CBC_SHA和TLS_RSA_WITH_AES_128_CBC_SHA

2)我剛纔看到下面的鏈接,

Is TLS_RSA_WITH_3DES_EDE_CBC_SHA equivalent to SSL_RSA_WITH_3DES_EDE_CBC_SHA

這解釋TLS_RSA_WITH_3DES_EDE_CBC_SHA和SSL_RSA_WITH_3DES_EDE_CBC_SHA是等價的。

但我發現,當服務器連接到它時支持「TLS_RSA_WITH_3DES_EDE_CBC_SHA」(JDK1.7)這個密碼套件沒有被選中,我的連接失敗。

在附加說明中,我使用Apache的httpclient進行連接。

+1

你可以顯示你用來連接網站的代碼嗎? –

回答

1

這是一個很好的鏈接,顯示了Java的1.7支持: https://www.ssllabs.com/ssltest/viewClient.html?name=Java&version=7u25

你的一個協議(TLS_RSA_WITH_AES_128_CBC_SHA)是由Java的1.7,但僅適用於TLSv1.0或低於可接受的。可能值得檢查服務器是否關閉了支持,如果這隻支持TLSv1.1或TLSv1.2?您可以在同一站點使用server test進行檢查。

如果是這樣,那麼你需要升級到Java 8.如果你的Java應用使用SSL/TLS,你可能應該考慮這一點,因爲PCI已經強制關閉TLSv1.0,所以這將變得越來越多的問題。