如何修复无效的SSL记录内容类型

时间:2012-05-08 12:27:44

标签: java security networking ssl

你好我在使用SSLFactory

尝试连接到java时遇到此错误

堆栈追踪:

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();

1 个答案:

答案 0 :(得分:1)

getSupportedCipherSuites()仅显示您的本地SSL实施可以支持哪些密码(无论它们是否已启用);它不使用远程连接。因此,无论SSLSocket的目标是什么,您的“调试”输出始终会以相同的结果成功。在尝试握手之前(或者如果通过尝试读取或写入流来强制握手,或访问SSL会话信息),则不会打开远程连接。

您是否确信您正在进行的出站TCP连接是SSL服务器?您是否能够使用其他客户端(例如浏览器或OpenSSL命令行客户端)进行确认?