java - 由于 TLS 不兼容,SOAP Web 服务不接受请求

标签 java soap aem tls1.2 java-security

我正在尝试从本地(开发环境)AEM 5.6.1 进行使用 HTTPS 的第三方 SOAP 服务调用。 SOAP 服务接受至少具有 TLSv1.1 TLS 协议(protocol)的请求。 我有使用 JDK7 的 AEM 5.6.1,对于 JDK7,使用默认的 TLSv1。 达到可接受的最低 TLS。我尝试了以下两种方法:

方法 1: 使用 -Dhttps.protocols=TLSv1.2

启动 AEM

方法 2: 更新了 SSLContext 以更新 TLS。

SSLContext context = null;
try {
    context = SSLContext.getInstance("TLSv1.2");
    context.init(null, null, new java.security.SecureRandom());
    SSLContext.setDefault(context);
    LOGGER.info("Currecnt TLS:" + SSLContext.getDefault().getProtocol());
}catch (Exception e){
    LOGGER.error("Error while updating TLS:",e);
}

第一个不起作用,但另一个可以将 AEM 的 TLS 协议(protocol)更新为 TLSv1.2。

但我仍然无法访问该服务。错误仍然相同。

错误:

The required TLS connection level has not been met.  SSL Protocol level: TLSv1

引用:

我想知道两件事,

  • 我是否缺少任何阻止正确 TLS 更新的内容?
  • 有没有办法只更新此特定服务的 TLS,而不是全局更改它。

谢谢

最佳答案

这是 CQ 5.5/5.6 中的错误。核心问题归结为以下事实:在较旧的 CQ 版本中,不允许通过配置禁用 SSLv3,因此 TLS 参数从未生效。

您需要联系 Daycare 支持并请求针对您的版本的修补程序。

或者,从您的软件包共享帐户查看此 HF:HOTFIX-5220,因为这可能可以解决您的 TLS 问题。

AEM 6.0 已通过包共享发布了针对此问题的修补程序。如果上述修补程序对您不起作用,请使用您的登录名并搜索 6.0 下的 HOTFIX-5238,并向 Daycare 索取适用于您的 AEM 版本的向后端口或兼容包。

关于java - 由于 TLS 不兼容,SOAP Web 服务不接受请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42988080/

相关文章:

java - Android String Edit和Array的值定位

java - 在多个项目中共享JAR的最佳方法是什么?

java - 为什么 drools 规则引擎即使在循环内给出也只执行一次?

java - Jersey .server.model.ModelValidationException

java - 无法通过 POST 使用 sling servlet 中的请求调度程序重定向到 AEM 中的另一个页面

java - Apache camel soap 请求类型转换错误

.net - 对 ASP.NET 2.0 Web 服务进行版本控制的最佳方式是什么?

通过 AJAX 从 Web 服务 (asp.net) 检索数据时出现 Javascript 错误

aem - 直接去除装饰标签 aem

java - SlingFilter 不捕获异常?