Java 如何修复无效的SSL记录内容类型
您好,我在尝试使用SSLFactory连接到java中的SSL时遇到此错误 堆栈跟踪:Java 如何修复无效的SSL记录内容类型,java,security,networking,ssl,Java,Security,Networking,Ssl,您好,我在尝试使用SSLFactory连接到java中的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) 以下是握手
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();
\u socket=SocketFactory.getSslSocket(\u socket,//在此调用之前创建的套接字
_地址,//支持SSL的主机
_port.intValue());
SSLSocket tempSocket=(SSLSocket)\ U插槽;
字符串[]SupportedCipherSuite=tempSocket.GetSupportedCipherSuite();
System.out.println(“支持的密码套件:”);
for(int i=0;i
GetSupportedCipherSuite()
仅显示本地SSL实现可以支持哪些密码(无论是否启用);它不使用远程连接。因此,无论SSLSocket的目标是什么,您的“调试”输出总是会以相同的结果成功。在您尝试握手之前(或者在试图读取或写入流或访问SSL会话信息时强制握手),远程连接不会打开
您确信您正在进行的出站TCP连接是到SSL服务器的吗?您是否能够使用其他客户端(如浏览器或OpenSSL命令行客户端)确认这一点?以及从服务器接收到的数据的跟踪。还有正在使用的证书的任何非敏感部分。该套件打印以下内容:支持的密码套件:SSL\u RSA\u WITH_3DES\u EDE\u CBC\u SHA SSL\u RSA\u WITH_DES\u CBC\u SSL\u RSA\u EXPORT\u WITH_DES40\u CBC\u SHA SSL\u RSA\u WITH_NULL\u SHA SSL\u RSA\u WITH_NULL\u MD5 TLS\u RSA\u WITH_AES\u 128\u CBC\u shaw这里是否有SocketFactory.getssocket(<)/code>?此SocketFactory
的全名是什么?是的,smtp服务器已配置为使用SSL/TLS,但我也尝试使用OpenSSL命令,并确认im使用的服务器正在使用SSL。SSL握手读取了2687字节,写入了305字节。在握手之前,我需要担心证书吗?答案是:smtp.gmail.com:587没有运行SSL