TLSv1.2 + BouncyCastle + Apache httpclient 4.4
问题描述:
参考How to use TLS 1.2 in Java 6中提供的解决方案,是否可以将TSLSocketConnectionFactory与Apache HttpClient4.4配合使用。TLSv1.2 + BouncyCastle + Apache httpclient 4.4
问候, Ĵ
答
您应该能够使用TSLSocketConnectionFactory与HttpClient的类似以下内容:
SSLConnectionSocketFactory sf = new SSLConnectionSocketFactory(new TLSSocketConnectionFactory(), new String[]{"TLSv1.2"}, null, new DefaultHostnameVerifier());
HttpClient client = HttpClientBuilder.create()
.setSSLSocketFactory(sf)
.build();
您可能需要改变一些在TSLSocketConnectionFactory的方法的SSLSession实现的。
在我而言,当我试图与HttpClient的使用它,我不得不改变如下:
在的SSLSocket()实现:
@Override
public String[] getEnabledCipherSuites() {
// return null;
return new String[]{""};
}
@Override
public String[] getEnabledProtocols() {
// return null;
return new String[]{""};
}
在的SSLSession()实现:
@Override
public String getProtocol() {
// throw new UnsupportedOperationException();
return null;
}
@Override
public String getProtocol() {
// throw new UnsupportedOperationException();
return "";
}
@Override
public String getCipherSuite() {
// throw new UnsupportedOperationException();
return "":
}