【发布时间】: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