我正在使用 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/