Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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 如何使用SSLv2启动ssl连接_Java_Ssl_Network Programming_Jsse - Fatal编程技术网

Java 如何使用SSLv2启动ssl连接

Java 如何使用SSLv2启动ssl连接,java,ssl,network-programming,jsse,Java,Ssl,Network Programming,Jsse,我想使用SSLv2启动与远程服务器的SSL连接。我正在使用Java。我尝试使用以下方法在套接字中获取受支持的协议: String[] suppProtocols=socket.getSupportedProtocols(); System.out.println("The protocols supported for this socket are: "+Arrays.toString(suppProtocols)); 我在输出中得到了这个: [SSLv2Hello, SSLv3, TLS

我想使用SSLv2启动与远程服务器的SSL连接。我正在使用Java。我尝试使用以下方法在套接字中获取受支持的协议:

String[] suppProtocols=socket.getSupportedProtocols();
System.out.println("The protocols supported for this socket are: 
"+Arrays.toString(suppProtocols));
我在输出中得到了这个:

[SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]

现在,我读到Java不支持SSLv2,SSLv2Hello只使用SSLv2发送hello消息。我不明白这意味着什么?是否与客户端支持SSLv2不一样?如何使用SSLv2进行SSL连接。

SSLv3和TLSv1.x提供了一种将其客户端Hello消息包装在SSLv2客户端Hello中的方法,如中所述。SSLv3和TLS1及以上版本有一个更一致的机制来协商版本。正如TLS规范所述:

发送2.0版客户端hello消息的能力将 以应有的速度逐步淘汰。实施者应该尽一切努力 努力尽快向前推进。版本3.0 为移动到新版本提供更好的机制

Sun/Oracle JRE或OpenJDK不支持SSLv2。将SSLv3+消息包装到SSLv2消息只是为了向后兼容。现在是。从服务器的角度来看,它至少可以接受以这种方式将其客户机Hello消息包装到SSLv2消息中的其他SSLv3+客户机,无论它们是否支持SSLv2

您将在中找到有关Java支持(包括其他实现)的更多详细信息


一般来说,SSLv2被认为是不安全的:您根本不应该使用它。总的趋势是从SSLv3向TLS 1.0或更高的方向移动,而不是倒退

SSLv3和TLSv1.x提供了一种将其客户端Hello消息包装在SSLv2客户端Hello中的方法,如中所述。SSLv3和TLS1及以上版本有一个更一致的机制来协商版本。正如TLS规范所述:

发送2.0版客户端hello消息的能力将 以应有的速度逐步淘汰。实施者应该尽一切努力 努力尽快向前推进。版本3.0 为移动到新版本提供更好的机制

Sun/Oracle JRE或OpenJDK不支持SSLv2。将SSLv3+消息包装到SSLv2消息只是为了向后兼容。现在是。从服务器的角度来看,它至少可以接受以这种方式将其客户机Hello消息包装到SSLv2消息中的其他SSLv3+客户机,无论它们是否支持SSLv2

您将在中找到有关Java支持(包括其他实现)的更多详细信息


一般来说,SSLv2被认为是不安全的:您根本不应该使用它。总的趋势是从SSLv3向TLS 1.0或更高的方向移动,而不是倒退

我知道它不安全,不应该使用。我需要将其用于测试目的。如果可能的话,我仍然需要任何方法来做这件事。不太确定你想测试什么。SSLv2真的不应该再存在了。话虽如此,请查看EJP对我链接的问题的回答。显然,IBMJRE支持它。或者,如果您真的需要与SSLv2服务器对话,您可以使用一个用OpenSSL实现的隧道(并用v2配置),可能是类似于
stunnel
,而不是使用JSSE。@Bruno这个答案中的第二个“SSLv3”应该是“SSLv2”(客户端您好)。我知道它不安全,不应该使用。我需要将其用于测试目的。如果可能的话,我仍然需要任何方法来做这件事。不太确定你想测试什么。SSLv2真的不应该再存在了。话虽如此,请查看EJP对我链接的问题的回答。显然,IBMJRE支持它。或者,如果您真的需要与SSLv2服务器对话,您可以使用一个用OpenSSL实现的隧道(并用v2配置),可能使用类似于
stunnel
,而不是使用JSSE。@Bruno此答案中的第二个“SSLv3”应该是“SSLv2”(客户端hello)。