【发布时间】:2016-05-03 15:45:06
【问题描述】:
参考How to use TLS 1.2 in Java 6中提供的解决方案,是否可以将TSLSocketConnectionFactory与Apache HttpClient4.4一起使用。
问候, j
【问题讨论】:
标签: ssl bouncycastle java-6
参考How to use TLS 1.2 in Java 6中提供的解决方案,是否可以将TSLSocketConnectionFactory与Apache HttpClient4.4一起使用。
问候, j
【问题讨论】:
标签: ssl bouncycastle java-6
您应该能够将 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 "":
}
【讨论】: