Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复无效的SSL记录内容类型_Java_Security_Networking_Ssl - Fatal编程技术网

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) 以下是握手

您好,我在尝试使用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)
以下是握手过程中的代码错误:

_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