我想找出如果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 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