2016-05-16 166 views
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

回答

1

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

作爲一個後續 - 查看「管道」配置 - 它是沒有很好的記錄,但我相信它涵蓋了你想要的連接細節方面。 –