用于SOAP请求的Java Webservice中的双向握手(相互身份验证)raise handshake_failure

时间:2017-04-20 13:11:08

标签: java web-services soap https mutual-authentication

我需要为SOAP请求实现双向握手(相互身份验证)

双向握手是(相互认证),

在请求中,我们需要发送SSL证书以通过服务器进行身份验证。 (服务器将使用预共享SSL证书进行身份验证)。

A-party - 服务器 B方 - 客户(我)

我们使用生成SSL证书, openssl req -newkey rsa:2048 -nodes -keyout B-party.key -x509 -days 1000 -out B-party.cer

导入到trustStore keytool -import -trustcacerts -file B-party.cer -alias server -keystore B-partyr.jks

导入到trustStore keytool -import -trustcacerts -file A-party.cer -alias server -keystore A-party.jks

1)A-party与B-party共享我的自签名SSL证书(.cer)。 2)B-party与A-party共享他们的SSL证书。 3)B-party使用keytool成功在其信任库中导入客户端共享SSL证书 4)A-party还在其END处添加了证书。

现在B方使用keytool从B方SSL证书(.cer)生成JKS。

(JKS包含证书和密钥)

在调用存根(A-party共享的WSDL)之前,我们需要设置System属性以在请求中发送SSL证书,

我知道这是在请求中发送ssl证书(如果没有,请更正我)。

System.setProperty("javax.net.ssl.keyStore", "B-party.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "password");

System.setProperty("javax.net.ssl.trustStore", "A-party.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "password");

System.setProperty("javax.net.debug", "ssl"); 

现在我们调用了Stub方法来执行操作,但是我们正在接收“handshake_failure”。

为什么提出握手异常,因为我们知道在请求中发送了相同的ssl证书。

例外

  

HTTPSender - 无法将viaPost发送到url []   org.apache.axis2.AxisFault:连接已关闭:javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure

现在我们发送的JKS格式的ssl证书是否可以被所有服务器接受,服务器是从请求中读取证书的电缆。

自签名证书是否发送TLS证书申请?

如果服务器发送TLS证书请求,如何检查该列表是否包含我的自签名证书。

0 个答案:

没有答案