Я не буду Тринг JDK1.7 с кодом нижечто протокол используется в SSLContext.getInstance
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null,null,null);
SSLSocketFactory sf = sc.getSocketFactory();
SSLSocket ss = (SSLSocket)sf.createSocket();
System.out.println(Arrays.toString(ss.getSupportedProtocols()));
Независимо от того, какой протокол я ставлю в качестве getInstance
параметра, нет никаких изменений в результате. Я пробовал эти протоколы:
- SSLv2Hello
- SSLv3
- TLSv1
- TLSv1.1
- TLSv1.2
Где этот параметр вступит в силу, как я могу позвонить sslsocket.setEnabledProtocols
для установки протоколов, которые я хочу позже?
Я проверил некоторые вопросы, но нет ответов на это, http://stackoverflow.com/questions/11504173/sslcontext- инициализация http://serverfault.com/questions/64484/functional-implications-of-differences-in-ssl-and-tls/368574#368574 – xiaoming
Ваш код работал отлично для меня, когда я использовал SSLContext.getInstance ("TLSv1 ") и' 'SSLContext' (http://docs.oracle.com/javase/7/docs/api/javax/net/ssl/SSLContext.html) javadoc говорит: * Каждая реализация платформы Java является требуется для поддержки следующего стандартного протокола SSLContext: TLSv1 *. –