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不可用”。

在这方面的任何帮助将不胜感激。

+0

为什么不呢?取决于JVM(高达Java 6),无论如何,“TLSv2”不作为TLS协议存在。 – vzamanillo

我在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

+0

这里还有一个Jira显示如何做到这一点。 http://mail-archives.apache.org/mod_mbox/cxf-issues/201503.mbox/%[email protected]A%3E – Mike

+0

作为一个后续 - 查看“管道”配置 - 它是没有很好的记录,但我相信它涵盖了你想要的连接细节方面。 –