Apache CXF是否支持TLS 1.2?
我想找出如果Apache CXF 3.1.6支持TLS1.2Apache CXF是否支持TLS 1.2?
我看着Apache的文件,并没有发现有关TLS1.2 http://cxf.apache.org/docs/tls-configuration.html
信息我也试着设置“secureSocketProtocol到TLSv2”但最终在日志中出现“TLSv2 SSLContext不可用”。
在这方面的任何帮助将不胜感激。
我在Apache httpClient中使用了一个自定义SSL上下文来打开Java 7中的TLSv1.2(默认情况下不启用),因此您应该可以在CXF中将其打开。在Java 8中,它应该默认使用它。我会尝试,如果您使用的配置中使用
TLSv1.2工作
作为参数。
如果这不起作用,您可以尝试使用自定义SSL工厂。
// enable tls v1.1 and v1.2 on JRE 7
String jreVersion = System.getProperty("java.version");
if (jreVersion.startsWith("1.7")){
try {
SSLContext sslcontext = SSLContexts.custom().build();
// Allow TLSv1.1 and 1.2 protocol only
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext,
new String[] { "TLSv1.1", "TLSv1.2" }, null,
SSLConnectionSocketFactory.getDefaultHostnameVerifier());
customClient.setSSLSocketFactory(sslsf); // set the httpClient custom factory
} catch (KeyManagementException | NoSuchAlgorithmException e) {
e.printStackTrace();
throw e;
}
}
获取CXF使用自定义套接字工厂已经回答了on this SO question
这里还有一个Jira显示如何做到这一点。 http://mail-archives.apache.org/mod_mbox/cxf-issues/201503.mbox/%[email protected]A%3E – Mike
作为一个后续 - 查看“管道”配置 - 它是没有很好的记录,但我相信它涵盖了你想要的连接细节方面。 –
为什么不呢?取决于JVM(高达Java 6),无论如何,“TLSv2”不作为TLS协议存在。 – vzamanillo