2012-04-05 6 views
1

После обновления от IBM JDK 6.0SR9 к 6.0SR10 я получаю (на стороне сервера):Клиент просил протокол SSLv3 не включен или не поддерживается (IBM JDK 6.0SR10)

java.io.IOException: javax.net.ssl.SSLHandshakeException: Client requested protocol SSLv3 not enabled or not supported 
       at com.ibm.jsse2.kb.z(kb.java:107) 
       at com.ibm.jsse2.SSLEngineImpl.b(SSLEngineImpl.java:4) 
       at com.ibm.jsse2.SSLEngineImpl.c(SSLEngineImpl.java:224) 
       at com.ibm.jsse2.SSLEngineImpl.wrap(SSLEngineImpl.java:377) 
       at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:6) 

Ни один из безопасности настройки были изменены. Любая идея, как я могу (повторно) включить SSLv3?

Спасибо.

+0

Кроме того, посмотрите на здесь: http://stackoverflow.com/questions/28236091/how-to- enable-ssl-3-in-java – iAmcR

ответ

0

SSLEngine.setEnabledProtocols(), но SSLv3 обязательно должен быть включен по умолчанию. Я бы дважды проверял ваше утверждение, что оно не отключено.

+0

Double-checked. На самом деле я теперь могу воспроизвести проблему, просто переключившись между старым и новым ibmjsseprovider2.jar. Все остальное (conf, зависимые библиотеки) остается неизменным. Явным образом устанавливая SSL-протокол SSL_TLS/SSL_TLSv2, я возвращаю старые функции. Итак, изменилось ли значение по умолчанию? – heeboir

+0

Вот что IBM сообщает в этом выпуске как новое: https://www.ibm.com/developerworks/java/jdk/security/60/secguides/jsse2Docs/JSSE2RefGuide.html#JSSE2RefGuide__WhatsNew – heeboir

+1

@heeboir В нем говорится, что «IBM реализация поддерживает следующие протоколы: SSL, SSLv3, TLS, TLSv1 и SSL_TLS для класса SSLContext или API setEnabledProtocols в классах SSLSocket или SSLServerSocket, но также и о том, что протокол SSLv3 не разрешен в режиме FIPS. Вы в режиме FIPS? – EJP

1

В более поздних версиях SSLv3 по умолчанию отключен по соображениям безопасности.

Следующая техническая заметка должна подробно описать, как включить это.

http://www-01.ibm.com/support/docview.wss?uid=swg21318567

+0

У вас есть связь о том, что SSLv3 отключен? В этом техническом примечании предлагается включить как SSL, так и TLS, но я не вижу, где он говорит, что SSLv3 отключен (если только в режиме FIPS, как сказал EJP). – Bruno

1

Исключение происходит, когда настройки протокола клиент и сервер SSL не совпадают.

В следующем примере код клиента работает с серверной сконфигурировано с поддержкой протокола TLSv1.2:

String response = ""; 

URL url = new URL("https://localhost:9043/myservlet); 

final SSLContext ctx = SSLContext.getInstance("TLSv1.2"); 
ctx.init(null, null, null); 
// final String protoccol = ctx.getProtocol(); 

HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory()); 

final HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); 

conn.setReadTimeout(15000); 
conn.setConnectTimeout(15000); 
conn.setRequestMethod("POST"); 
conn.setDoInput(true); 
conn.setDoOutput(true); 

final OutputStream os = conn.getOutputStream(); 
final BufferedWriter writer = 
    new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); 

writer.write(......); 

writer.flush(); 
writer.close(); 
os.close(); 

final int responseCode = conn.getResponseCode(); 

if (responseCode == HttpsURLConnection.HTTP_OK) { 
    String line; 
    final BufferedReader br = 
    new BufferedReader(new InputStreamReader(conn.getInputStream())); 
    while ((line = br.readLine()) != null) { 
    response += line; 
    } 
} 

System.out.println("response: " + response); 

 Смежные вопросы

  • Нет связанных вопросов^_^