【问题标题】:SOAP Web service not accepting the request because of incompatible TLS由于 TLS 不兼容,SOAP Web 服务不接受请求
【发布时间】:2017-03-23 22:23:09
【问题描述】:

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

方法一: 使 AEM 以 -Dhttps.protocols=TLSv1.2 开头

方法 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 协议更新为 TLSv1.2。

但我仍然无法访问该服务。错误依旧。

错误:

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

参考:

我想知道两件事,

  • 我错过了阻止正确 TLS 更新的任何内容。
  • 有没有办法只为这个特定的服务更新 TLS,而不是全局更改它。

谢谢

【问题讨论】:

  • 请贴出错误信息和连接对方的代码
  • @Raffaele 我已经用错误更新了描述。但这是来自第三方服务的自定义错误。
  • 这还不够。我们需要看看 HTTP 库是如何被调用的。完整的堆栈跟踪将有助于了解如何配置堆栈

标签: java soap aem tls1.2 java-security


【解决方案1】:

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

您需要联系 Daycare 支持并要求为您的版本提供修补程序。

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

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

【讨论】:

  • 谢谢。这些信息非常有帮助。我确实希望在 AEM 6.0 中提供类似 HOTFIX-5238 的东西。
  • 很高兴我能帮上忙。如果您认为这符合答案,请标记为答案。
猜你喜欢
  • 2016-11-29
  • 1970-01-01
  • 2013-09-30
  • 2019-11-04
  • 2019-04-09
  • 1970-01-01
  • 2017-07-14
  • 1970-01-01
  • 2014-06-18
相关资源
最近更新 更多