出于某些测试原因,我需要强制客户端使用SSLv3。 SSLv3是服务器中接受的协议。试图使用SSLContextBuilder.useProtocol(“SSLv3”)强行强制如下:
SSLContextBuilder发起如下:
....
....
Allow legacy hello messages: true
Is initial handshake: true
Is secure renegotiation: false
%% No cached client session
*** ClientHello, TLSv1
RandomCookie:
GMT: 1503650935
bytes = {
255,
....
....
但是日志中的结果显示握手总是在TLSv1中进行:
{{1}}
我的理解是,客户端应该请求服务器是否接受所定义的协议。在这种情况下,我希望看到客户端应该请求使用SSLv3而不是TLSv1。
答案 0 :(得分:1)
这将迫使HC 4.3仅使用SSLv3
SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(
SSLContext.getDefault(), new String[] {"SSLv3"}, null, SSLConnectionSocketFactory.STRICT_HOSTNAME_VERIFIER);
CloseableHttpClient httpClient = HttpClients.custom()
.setSSLSocketFactory(sslSocketFactory)
.build();