JDK 11。javax.net.ssl.SSLPeerUnverifiedException:对等方未经过身份验证

JDK 11。javax.net.ssl.SSLPeerUnverifiedException:对等方未经过身份验证,java,ssl,facebook-graph-api,java-11,Java,Ssl,Facebook Graph Api,Java 11,我正在将我们的平台迁移到JDK 11,其中一个服务在调用graph.facebook.com API时出现以下问题: org.springframework.web.client.ResourceAccessException:获取“”请求时发生I/O错误:对等方未经过身份验证;嵌套异常为javax.net.ssl.SSLPeerUnverifiedException:对等未验证。。。 原因:javax.net.ssl.SSLPeerUnverifiedException:对等未验证 我已经检查

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

org.springframework.web.client.ResourceAccessException:获取“”请求时发生I/O错误:对等方未经过身份验证;嵌套异常为javax.net.ssl.SSLPeerUnverifiedException:对等未验证。。。 原因:javax.net.ssl.SSLPeerUnverifiedException:对等未验证

我已经检查了机器上的ca证书,一切看起来都很好:

ca证书已经是最新版本(20180409)。 0已升级,0已新安装,0已删除,0未升级


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


我最近在11.0.2的一个应用程序中偶尔出现了一个
SSLPeerUnverifiedException
,还有一个偶尔出现的
SSLException:没有可用的PSK。无法继续。
失败。后者似乎来自JDK 11.0.2中的一个版本。当我更新到11.0.4时,这两个问题都消失了。

您使用的是Oracle的JDK还是OpenJDK?@Aris_Kortex,OpenJDK。在11.0.1和11.0.2OK上试用。据我所知,OpenJDK确实附带了一些根CA证书,但不是全部。Facebook似乎利用了Eset提供的证书,该证书似乎不包括在根证书列表中(如此处所示:)。因此,要解决这个问题,您需要导入Facebook的根证书以及可能的中间证书。我发现,获取PHP SDK提供的根CA有时会有所帮助,不妨尝试一下——这一点!我们使用11.0.2在对特定域的每个请求上都遇到了SSLPeerUnverifiedException。有了11.0.4,问题就消失了。