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