Apache CXF是否支持TLS 1.2?

时间:2016-05-16 14:46:40

标签: java apache cxf

我想知道apache cxf 3.1.6是否支持TLS1.2

我查看了Apache的文档,发现没有与TLS1.2相关的信息 http://cxf.apache.org/docs/tls-configuration.html

我还尝试将“secureSocketProtocol”设置为“TLSv2”,但最终在日志中收到“TLSv2 SSLContext不可用”。

非常感谢这方面的任何帮助。

1 个答案:

答案 0 :(得分: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