java - 调用我的 Web 服务时发生 SSL 协议(protocol)错误

标签 java apache payara java-security

我有一个 Spring REST Web 服务,它在内部调用第三方供应商提供的 SOAP Web 服务。 SOAP Web 服务客户端是使用 CXF 生成的。自从升级到我的组织提供的较新版本的 JDK 以来,我看到以下奇怪的行为

1) 如果我通过 Web 服务器调用 REST 服务,则在第一次成功的 SOAP 调用后,应用程序将停止响应。 Web 服务器开始给出错误网关错误。

a) 此时,如果我调用应用程序服务器,它不会响应。 Chrome 显示 SSL 协议(protocol)错误,但访问日志中没有任何条目,Chrome 开发者工具中也没有任何响应。

2) 如果我直接在应用服务器上调用 REST 服务,即使调用“n”次,该服务也会按预期工作。

根据我的组织提供的更改日志,更改是从 JDK 版本 jdk1.8.0_161_iaik5.5_ecc4.02 更改为 jdk1.8.0_161_iaik5.5_ecc4.02_1。

任何指示都会有所帮助。谢谢。如果我应该在问题中添加任何其他详细信息,请告诉我。

编辑-- 添加了一些额外的日志记录,在日志中显示了一个decode_error

[2019-01-31T13:55:17.136-0500] [Payara 4.1] [INFO] [] [] [tid: _ThreadID=36 _ThreadName=http-thread-pool::http-listener-2(4)] [timeMillis: 1548960917136] [levelValue: 800] [[ http-thread-pool::http-listener-2(4),写入:TLSv1.2 握手,长度 = 3989]]

[2019-01-31T13:55:17.138-0500] [Payara 4.1] [INFO] [] [] [tid: _ThreadID=37 _ThreadName=http-thread-pool::http-listener-2(5)] [timeMillis: 1548960917138] [levelValue: 800] [[ http-thread-pool::http-listener-2(5),阅读:TLSv1.2 警报,长度 = 2]]

[2019-01-31T13:55:17.138-0500] [Payara 4.1] [INFO] [] [] [tid: _ThreadID=37 _ThreadName=http-thread-pool::http-listener-2(5)] [timeMillis: 1548960917138] [levelValue: 800] [[ http-thread-pool::http-listener-2(5)]]

[2019-01-31T13:55:17.138-0500] [Payara 4.1] [INFO] [] [] [tid: _ThreadID=37 _ThreadName=http-thread-pool::http-listener-2(5)] [timeMillis: 1548960917138] [levelValue: 800] [[ ,RECV TLSv1.2 警报:]]

[2019-01-31T13:55:17.138-0500] [Payara 4.1] [INFO] [] [] [tid: _ThreadID=37 _ThreadName=http-thread-pool::http-listener-2(5)] [timeMillis: 1548960917138] [levelValue: 800] [[ 致命的,]]

[2019-01-31T13:55:17.138-0500] [Payara 4.1] [INFO] [] [] [tid: _ThreadID=37 _ThreadName=http-thread-pool::http-listener-2(5)] [timeMillis: 1548960917138] [levelValue: 800] [[ 解码错误]]

[2019-01-31T13:55:17.138-0500] [Payara 4.1] [INFO] [] [] [tid: _ThreadID=37 _ThreadName=http-thread-pool::http-listener-2(5)] [timeMillis: 1548960917138] [levelValue: 800] [[ http-thread-pool::http-listener-2(5),致命:引擎已关闭。重新抛出 javax.net.ssl.SSLException:收到致命警报:decode_error]]

[2019-01-31T13:55:17.138-0500] [Payara 4.1] [INFO] [] [] [tid: _ThreadID=37 _ThreadName=http-thread-pool::http-listener-2(5)] [timeMillis: 1548960917138] [levelValue: 800] [[ http-thread-pool::http-listener-2(5),致命:引擎已关闭。重新抛出 javax.net.ssl.SSLException:收到致命警报:decode_error]]

最佳答案

请检查您的第三方支持的 TLS 版本。我在连接苹果云网址时遇到了“收到致命警报:decode_error”。我可以通过显式地将协议(protocol)设置为 TLS 1.2 来修复它。

我已经在 How to fix 'SSLHandshakeException: Received fatal alert: decode_error'? 中给出了示例

关于java - 调用我的 Web 服务时发生 SSL 协议(protocol)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54394028/

相关文章:

java - 在 Enfinity 中从 Pipeline 处理 AJAX 请求

java - 何时使用 IAdaptable?

php - 将文件系统权限限制为 apache/php,除了日志记录操作

java - 在 Glassfish/Payara 上禁用或隐藏 "ejb-timer-service-app"

maven - 在 pom.xml 中包含 vaadin-cdi 依赖项足以使 WAR 无法部署。为什么?

java - 从递归删除Java中获取对象

java - 错误 "The matching wildcard is strict, but no declaration can be found for element ' 上下文 :annotation-config'"via tomcat7

php - MAMP 所有虚拟主机都指向 htdocs 文件夹

python - Django 获得大量 SuspiciousOperation : Invalid HTTP_HOST header

mysql - Glassfish/帕亚拉 : can not create connection pool - There is no property isIsolationLevelGuaranteed in entity