java - SSL 握手失败 : A signer with SubjectDN CN=*. facebook.com

标签 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 url = new URL(pictureUrl);

获取图像时出现问题

它开火了

[ERROR ] CWPKI0022E: SSL HANDSHAKE FAILURE: A signer with SubjectDN CN=*.facebook.com, O="Facebook, Inc.", L=Menlo Park, ST=California, C=US was sent from the target host.

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

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

最佳答案

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

您说您已将 Facebook 证书放入您的信任存储区,但整个链是否可信?至少,签署 Facebook 证书的根 CA 需要在信任库中。

关于java - SSL 握手失败 : A signer with SubjectDN CN=*. facebook.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44448398/

相关文章:

c# - 确保页面只能通过 SSL 访问

websphere-liberty - WebSphere Liberty 配置文件 : Context Root Not Found

java - 如何在 Android 应用程序中创建自定义 View ?

java - java中的递归方法

git - SSL 证书拒绝尝试通过防火墙后的 HTTPS 访问 GitHub

ssl - 超过 HTTPSConnectionPool 最大重试次数

java - 我可以使用 Ant 检测我是否在 Linux 系统(而不是通用 Unix 系统)上吗?

java - 从一个数据库中读取数据并存储到另一个数据库中

quartz-scheduler - Quartz 1.8.5 + OpenLiberty 18.0.0.4/Websphere Liberty 17.0.0.4 java.lang.NoClassDefFoundError : oracle/sql/BLOB

MicroProfile 的 WebSphere Application Server 支持