SSL 握手失败:具有 SubjectDN CN=*.facebook.com 的签名者



我正在使用 Liberty 16.0.0.4,我想从 facebook 帐户图像中获取图像,所以我运行了下一个命令将 facebook 证书添加到 Liberty 服务器

keytool  -importcert -keystore /pathToServer/Servers/'03- Liberty 16.0.0.4'/wlp/usr/servers/MyProjectServer/resources/key.jks -file facebook.crt -alias facebooksigner

并且证书已成功添加到 liberty key.jks 文件中,我在列出此文件上的证书时看到它。

但是当我尝试使用 URL url = 新 URL(图片网址(获取图像时,我的问题;

它发射

[错误] CWPKI0022E:SSL 握手失败:从目标主机发送了具有 SubjectDN CN=*.facebook.com、O="Facebook, Inc."、L=Menlo Park、ST=California、C=US 的签名者。

注意:我<keyStore id="defaultKeyStore" password="{xor}EzY9Oi0rJg=="/>添加到服务器中.xml

所以你能猜到为什么会这样吗?谢谢:)

为了使SSL正常工作,客户端需要信任服务器呈现给它的链 - 从顶部(根(级别一直向下。

你说你已经把Facebook证书放进了你的信任商店,但整个链条是可信的吗?至少,签署 Facebook 证书的根 CA 需要位于信任存储区中。

在 16.0.0.4(及更早版本(中,Java SE API 永远不会使用服务器.xml中定义的密钥库或信任库。他们将使用 JRE 的"cacerts"或您在控制信任和密钥存储的已知 SE 系统属性中定义的任何替代方法。

在 17.0.0.1(及更高版本(中,如果装入了 transportSecurity-1.0.xml则 Java SE 调用方可以使用服务器中定义的密钥库。

相关内容

最新更新