IBM Liberty SSL HANDSHAKE FAILURE

时间:2017-04-06 11:36:16

标签: web-services ssl websphere-liberty

我正在使用 Liberty 16.0.0.4

我正在尝试调用xxxx SOAP服务,但是我收到了以下错误

  

[错误] CWPKI0022E: SSL HANDSHAKE FAILURE:从目标主机发送了具有SubjectDN CN = xxxx的签名者。签名者可能需要添加到位于SSL配置别名defaultSSLConfig中的本地信任存储 serverHome / resources / security / key.jks。来自SSL握手异常的扩展错误消息是: PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效证书路径

我使用next命令生成证书

openssl s_client -connect xxxxURL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > xxx.cert

然后使用下一个命令将其注入自由jks默认文件

keytool -import -trustcacerts -alias xxxSigner -file xxx.cert -keystore *pathToHomeServer/resources/security/key.jks* -storepass Liberty -storetype jks

这也是我的

相关的server.xml标签
<featureManager>
    <feature>webProfile-7.0</feature>
    <feature>jaxb-2.2</feature>
    <feature>concurrent-1.0</feature>
    <feature>javaMail-1.5</feature>
    <feature>localConnector-1.0</feature>
    <feature>jaxws-2.2</feature>
    <feature>apiDiscovery-1.0</feature>
    <feature>ssl-1.0</feature>
</featureManager>

<keyStore id="defaultKeyStore" location="${server.config.dir}/resources/security/key.jks" password="{xor}EzY9Oi0rJg==" type="jks" />
<keyStore id="defaultTrustStore" location="${server.config.dir}/resources/security/key.jks" password="{xor}EzY9Oi0rJg==" type="jks" />

<sslDefault sslRef="defaultSSLConfig" />

<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" trustStoreRef="defaultTrustStore" sslProtocol="TLSv1.2"/>

<httpEndpoint id="defaultHttpEndpoint" httpPort="9080" httpsPort="9443">
    <sslOptions sslRef="defaultSSLConfig"></sslOptions>
</httpEndpoint>

那么我的方面有什么问题

2 个答案:

答案 0 :(得分:3)

不确定为什么你的方法不起作用,但另一种方法是使用浏览器检索证书,然后使用keytool添加它,如此处所述(参见底部的8/5/2015评论)文章):developer.ibm.com/wasdev/docs/single-sign-google-liberty

答案 1 :(得分:0)

如果你明确添加签名者本身,当你将-showcerts附加到openssl命令时显示在证书堆栈的底部,是否有效?