Я использовал пользовательский контекст ssl в Apache httpClient, чтобы включить TLSv1.2 в Java 7 (не включен по умолчанию), поэтому вы можете включить его в 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
Почему нет? зависит от JVM (вплоть до Java 6), так или иначе, «TLSv2» не существует как протокол TLS. – vzamanillo