2015-12-29 241 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