是否可以使用java socket从客户端发送sslv2 hello消息

时间:2012-11-04 00:42:36

标签: java ssl network-programming

是否可以发送sslv2 hello消息?当我尝试使用远程服务器启动ssl握手时,默认版本为TLS。我需要测试服务器是否接受sslv2,因此,我需要强制我的Java程序发送sslv2 hello消息。这可能吗?怎么样?请注意,我只需要进行测试。我不是在做一个真正的Java应用程序。

2 个答案:

答案 0 :(得分:2)

Sun / Oracle Java从未支持SSLv2。出于兼容性目的,它确实支持SSLv2ClientHello 消息来协商SSLv3或更高版本,但我认为这已被撤回1.7。 IBM Java用于支持SSLv2,但我不能代表当前版本。

答案 1 :(得分:1)

不支持SSLV2,如果您需要强制SSLv2Hello消息,可以设置系统属性:

System.setProperty("https.protocols", "SSLv3,SSLv2Hello"); 

或者您可以直接管理您的套接字:

SSLContext context = SSLContext.getInstance("TLSv1");
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sock = (SSLSocket) sslsocketfactory.createSocket("hostserver", 443);
String[] protocols = {"SSLv2Hello", "SSLv3", "TLSv1"};