微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

org.bouncycastle.tls.TlsFatalAlertReceived: internal_error(80) 用于 SOAP Web 服务调用

如何解决org.bouncycastle.tls.TlsFatalAlertReceived: internal_error(80) 用于 SOAP Web 服务调用

错误:java.io.IOException:无法传输消息

问题详情:我们使用 Jboss AS 5.1 和 OpenJDK 7(版本 1.7.0_261)运行我们的应用程序,服务器是 Red Hat Linux CentOS 5。

我们有一个遗留应用程序,它对 NetSuite 进行多次 Web 服务调用,在最近的 NetSuite 更新淘汰旧密码套件之后,我们的所有调用都开始失败。启用了 TLSv1.2 协议(在 run.conf 中使用 -Dhttps.protocols=TLSv1.2),因为它是 Java 7,我们添加了充气城堡安全 jar 以增加支持的密码套件(如 Igor 在此评论中所推荐的:{{ 3}}),通过这个,我们能够使 REST Web 服务调用正常工作,但我们收到错误 - org.bouncycastle.tls.TlsFatalAlertReceived: internal_error(80) for SOAP WS calls。

我们尝试过的其他事情,但似乎还没有给我们带来好运:

  1. 在 run.conf 中使用 -Dhttps.cipherSuite=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_SHA325GCM_SHA384,TLS_ECDHEAES_RSA_WITH2_GCM_SHA385_GCM_SHA384,TLS_ECDHEAES_RSA_WITH6_1G_1000000000000000000000000000000000000000000000000000000000000中显式添加了NetSuite支持的密码套件
  2. 在 run.conf 中使用 tls.client.protocol 添加 TLS 协议 - -Djdk.tls.client.protocols=TLSv1.2
  3. 将自签名证书添加到密钥库
  4. 将 NetSuite 的证书添加到 Java cacerts

SOAP 调用在 Java 8 中运行良好,但将这个遗留应用程序迁移到 Java 8 和 Wild Fly 是一项非常繁重的工作,因此我们正在寻找替代选项。

任何有关解决此问题的建议都会非常有帮助,拜托! TIA!

解决方法

TlsFatalAlertReceived 表示收到来自对等方的致命警报(即 NetSuite 失败)。 internal_error 通常意味着实现本身出了问题,而不是像密码套件这样的任何配置匹配,但是我不知道 NetSuite 在选择警报时有多小心。在任何情况下,除了猜测问题是什么之外,真正的下一步是查看 NetSuite 服务器日志以找出故障所在。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。