2012-05-08 3 views
0

Привет я получаю эту ошибку при попытке подключиться к SSL в Java с помощью SSLFactoryКак исправить Неверная запись SSL тип контента

Стек след:

javax.net.ssl.SSLHandshakeException: invalid SSL record content type 
at com.ibm.j9.jsse.SSLSocketImpl.completeHandshake(Unknown Source) 
at com.ibm.j9.jsse.SSLSocketImpl.getInputStream(Unknown Source) 

Вот код ошибки во время рукопожатия:

_socket = SocketFactory.getSslSocket(_socket, //Socket created before this call 
             _address, //host that supports SSL 
             _port.intValue()); 

SSLSocket tempSocket = (SSLSocket)_socket; 

String[] supportedCipherSuites = tempSocket.getSupportedCipherSuites(); 

System.out.println("Supported Cipher Suites:"); 
for(int i = 0; i < supportedCipherSuites.length; i++) 
{ 
    System.out.println(supportedCipherSuites[i]); 
}  

tempSocket.setUseClientMode(true); 
tempSocket.startHandshake(); 
+0

Пожалуйста, покажите свой код. – home

+0

и след от того, какие данные принимаются с сервера. Также любые нечувствительные части сертификата, который используется. – Cheekysoft

+0

в люкс печатает это: Поддерживаемые шифров: SSL_RSA_WITH_3DES_EDE_CBC_SHA SSL_RSA_WITH_DES_CBC_SHA SSL_RSA_EXPORT_WITH_DES40_CBC_SHA SSL_RSA_WITH_NULL_SHA SSL_RSA_WITH_NULL_MD5 TLS_RSA_WITH_AES_128_CBC_SHA –

ответ

1

getSupportedCipherSuites() показывает только, какие шифры могут поддерживать ваша локальная реализация SSL (независимо от того, включены ли они или нет); Он не использует удаленное соединение. Таким образом, ваш вывод «отладки» всегда будет успешным с теми же результатами, независимо от цели вашего SSLSocket. Удаленное соединение не открывается до тех пор, пока вы не попытаетесь выполнить рукопожатие (или если рукопожатие принудительно пытается прочитать или записать в поток или получить доступ к информации о сеансе SSL).

Вы уверены, что исходящее TCP-соединение, которое вы создаете, является сервером SSL? Могли ли вы подтвердить это другим клиентом, таким как браузер или клиент командной строки OpenSSL?

+0

Да, сервер smtp был настроен только на использование SSL/TLS Я также попытался использовать команду OpenSSL и подтвердил, что сервер im использует ssl. ** Подтверждение SSL прочитало 2687 байт и записано 305 байт ** Мне нужно беспокоиться о сертификате до того, как произойдет рукопожатие? –

+0

im теперь использую smtp.gmail.com:587 как мой smtp-сервер и по-прежнему возникает ошибка ... –

+0

Есть ваш ответ: smtp.gmail.com:587 не работает SSL http://pastebin.com/jxEjAt1h – Cheekysoft

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