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