2015-12-29 125 views
0

我對Java 1.6的通信運行與服務器通過網絡服務於Java 1.8上運行的客戶端。SSL/TLS版本兼容性?

1)我想知道如果我的客戶端可以支持任何SSL/TLS版本?

2)如何找出我的客戶是什麼SSL/TLS版本應該運行,我沒有訪問遠程服務器?

3)我可以強制從Java客戶端應用程序的TLS/SSL版本?

任何幫助將是巨大的!謝謝!

回答

2

的SSLSocket提供了一種方法getSupportedProtocols()

SSLSocketFactory sf = new SSLSocketFactoryImpl(); 
SSLSocket s = (SSLSocket) sf.createSocket(); 
System.out.println(Arrays.toString(s.getSupportedProtocols())) ; 

輸出: [SSLv2Hello,SSLv3的,使用TLSv1,TLSv1.1,TLSv1.2工作]

http://download.java.net/jdk7/archive/b123/docs/api/javax/net/ssl/SSLSocket.html#getSupportedProtocols%28%29

+0

謝謝您的幫助!如果你不介意,我還有另一個問題!我使用的是球衣傑克遜庫的JSON格式(Java1.6)與遠程服務器進行通信。如果我使用TLSV1.2而不是當前的TLSv1,會對我的程序產生什麼影響? – MultiTask70