2016-06-24 4 views
0

У меня есть код, который работал отлично вчера и сегодня он бросает исключение: код работает на всех других сайтах я пробовал ..Полученное фатальное предупреждение: handshake_failure при загрузке HTML из URL

Кодекс:

String line = "", all = "",URL="https://www.website.co.il/"; 
    URL myUrl = null; 
    BufferedReader in = null; 
    try { 
     myUrl = new URL(URL); 
     in = new BufferedReader(new InputStreamReader(myUrl.openStream(),"UTF-8")); 

     while ((line = in.readLine()) != null) { 
      all += line; 
      all+='\n'; 
     } 
    } finally { 
     if (in != null) { 
      in.close(); 
     } 
    } 

Исключение:

Exception in thread "main" javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 
at sun.security.ssl.Alerts.getSSLException(Unknown Source) 
at sun.security.ssl.Alerts.getSSLException(Unknown Source) 
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source) 
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) 
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) 
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) 
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source) 
at java.net.URL.openStream(Unknown Source) 

Может ли кто-нибудь увидеть проблему? могут ли владельцы веб-сайта изменить то, что могло бы иметь такое значение?

ответ

1

SSL Labs report для сайта указывает на то, что он поддерживает только набор шифров TLS_RSA_WITH_AES_256_CBC_SHA который не поддерживается Java. Если вы посмотрите раздел синтаксиса рукопожатия отчета, вы увидите, что рукопожатия, смоделированные для Java 6, 7 и 8, не работают.

Редактировать: Как отметил @Robert в комментарии, установка файлов политики неограниченной силы добавит поддержку этого набора шифров в Java, что позволит вашему клиенту взаимодействовать с этим сайтом.

Supported cipher suites showing only TLS_RSA_WITH_AES_256_CBC_SHA

Handshake simulation for Java clients indicating failure

+1

AFAIK Java не поддерживает этот шифр из-за AES256 - вам необходимо установить [Безлимитную политику Strength файлы] (http://www.oracle.com/technetwork/java/ javase/downloads/jce8-download-2133166.html), то поддерживается AES256, а также этот шифр. – Robert

+0

Действительно! Спасибо за указатель. Я добавил это к моему ответу. –

+0

Он работает !! Спасибо огромное ! – JARVIM

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