【问题标题】:JDK 11. javax.net.ssl.SSLPeerUnverifiedException: peer not authenticatedJDK 11. javax.net.ssl.SSLPeerUnverifiedException:对等体未通过身份验证
【发布时间】:2019-03-12 18:27:30
【问题描述】:

我正在将我们的平台迁移到 JDK 11,其中一项服务在调用 graph.facebook.com API 时出现以下问题:

org.springframework.web.client.ResourceAccessException:“https://graph.facebook.com/v3.1/xxxxx/adaccounts”的 GET 请求出现 I/O 错误:对等体未通过身份验证;嵌套异常是 javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated... 原因:javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

我检查了机器上的 ca-certs,一切正常:

ca-certificates 已经是最新版本 (20180409)。 0 个已升级,0 个新安装,0 个要移除,0 个未升级。

【问题讨论】:

  • 你用的是Oracle的JDK还是OpenJDK?
  • @Aris_Kortex,OpenJDK。在 11.0.1 和 11.0.2 上都试过
  • 好的。据我所知,OpenJDK 确实附带了一些根 CA 证书,但不是全部。 Facebook 似乎使用了 Eset 提供的证书,该证书似乎未包含在根证书列表中(如在此处找到:openjdk.java.net/jeps/319)。因此,要解决相关问题,您需要同时导入 Facebook 的根证书以及可能的中间证书。
  • 我发现获取他们随 PHP SDK 提供的根 CA 有时会有所帮助,也许可以尝试一下 - github.com/facebook/php-graph-sdk/tree/5.x/src/Facebook/…

标签: java ssl facebook-graph-api java-11


【解决方案1】:

您可以尝试将 OpenJDK 更新到 11.0.3 或更高版本。

我最近在 11.0.2 的应用程序中偶尔出现 SSLPeerUnverifiedException,以及偶尔出现 SSLException: No PSK available. Unable to resume. 失败。后者似乎来自 JDK 11.0.2 中的 known bug。当我更新到 11.0.4 后,这两个问题都消失了。

【讨论】:

  • 这个!对于 11.0.2 对某个域的每个请求,我们都遇到了 SSLPeerUnverifiedException。有了 11.0.4,问题就消失了。
  • 我仍然可以使用 openjdk 11.0.12 2021-07-20(MS build 11.0.12+7)。
  • 是的,我们实际上仍然偶尔会遇到这种情况(似乎在非常突发的情况下)。我怀疑 11.0.4 中的错误修复有所帮助,但并没有完全解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-30
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
相关资源
最近更新 更多