SSL HANDSHAKE FAILURE:具有SubjectDN的签名者CN = * .facebook.com

时间:2017-06-09 02:36:17

标签: java ssl websphere-liberty

我正在使用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 =新网址(pictureUrl);

来获取图片时出现问题

它开火

  

[错误] CWPKI0022E:SSL握手失败:主题为CN = *。* facebook.com,O =“Facebook,Inc。”,L = Menlo Park,ST = California,C = US的签名者是从目标发送的主机。

注意:我将<keyStore id="defaultKeyStore" password="{xor}EzY9Oi0rJg=="/>添加到server.xml

那你能猜出为什么会这样吗?谢谢:))

2 个答案:

答案 0 :(得分:0)

要使SSL正常工作,客户端需要信任服务器向其提供的链 - 从顶层(根)级别一直向下。

你说你已经将Facebook证书放入你的信任商店,但是完整链是否值得信赖?至少,签署Facebook证书的根CA需要在信任存储区中。

答案 1 :(得分:0)

在16.0.0.4(及更早版本)中,java SE API将永远不会使用server.xml中定义的密钥库或信任库。他们将使用JRE的“cacerts”或您在控制信任和密钥库的着名SE系统属性中定义的任何替代方案。

在17.0.0.1(及更高版本)中,如果加载了transportSecurity-1.0,java SE调用者可以使用server.xml中定义的密钥库。