2013-03-23 3 views
1

Мне нужно сделать рукопожатие. Я делаю это с помощью кода ниже.SSLSocketFactory.createSocket подключается с использованием http вместо https

Я запускаю код в апплете, и он отлично работает при прямом запуске сервера. Проблема, которая возникает у меня, возникает, когда один и тот же код работает через прокси. Я смотрю в консоли java с активированным уровнем 5. Непосредственно после строки кода «SSLSocket socket = (SSLSocket) factory.createSocket (« www.theserver.com », 443); Выполняется Эта строка отображается в консоли java console: network: Подключение http://www.theserver.com:443 с прокси = DIRECT ". После этого апплет перестает работать. Я думаю, что это связано с тем, что прокси-сервер не разрешает трафик http на порту 443.

Может ли кто-нибудь сказать мне, почему он подключается с помощью http и что я должен сделать, чтобы подключить его с помощью https?

import javax.net.ssl.HandshakeCompletedEvent; 
import javax.net.ssl.HandshakeCompletedListener; 
import javax.net.ssl.SSLSocket; 
import javax.net.ssl.SSLSocketFactory; 

public class Handshake 
{ 

    class MyHandshakeListener implements HandshakeCompletedListener 
    { 

     public void handshakeCompleted(HandshakeCompletedEvent e) 
     { 
      System.out.println("Handshake succesful!"); 
      System.out.println("Using cipher suite: " + e.getCipherSuite()); 
     } 
    } 

    public void DoHandshake() 
    { 
     try 
     { 
      SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault(); 
      SSLSocket socket = (SSLSocket) factory.createSocket("www.theserver.com", 443); 
      String[] suites = socket.getSupportedCipherSuites(); 
      socket.setEnabledCipherSuites(suites); 
      socket.addHandshakeCompletedListener(new MyHandshakeListener()); 
      socket.startHandshake(); 
     } 
     catch (Exception e) 
     { 
      System.out.println(e); 
     } 

    } 
} 
+0

Я думаю, что я ищу тот же ответ. –

ответ

0

Я знаю, что это немного поздно, но у нас была такая же проблема и она была в состоянии разрешить это. Проблема была на клиенте, «Использовать совместимый с SSL 2.0 формат ClientHello» был отмечен на вкладке «Дополнительно» панели управления Java. Снимите этот флажок на клиенте, и он будет правильно подключен.

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