Java Webservice中用于引发握手失败的SOAP请求的双向握手(相互身份验证)

Java Webservice中用于引发握手失败的SOAP请求的双向握手(相互身份验证),java,web-services,soap,https,mutual-authentication,Java,Web Services,Soap,Https,Mutual Authentication,我需要为SOAP请求实现双向握手(相互身份验证) 双向握手是(相互认证) 在请求中,我们需要发送SSL证书以通过服务器进行身份验证。 (服务器将使用预共享SSL证书进行身份验证) 第三方服务器 乙方-客户(Me) 我们已使用生成SSL证书, openssl请求-新密钥rsa:2048-节点-密钥输出B-party.key-x509-第1000天-输出B-party.cer 导入到信任库 keytool-import-trustcacerts-file B-party.cer-alias serv

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

双向握手是(相互认证)

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

第三方服务器 乙方-客户(Me)

我们已使用生成SSL证书, openssl请求-新密钥rsa:2048-节点-密钥输出B-party.key-x509-第1000天-输出B-party.cer

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

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

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

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

(JKS包含证书和密钥)

在调用存根(由一方共享的WSDL)之前,我们需要设置系统属性以在请求中发送SSL证书

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

现在我们调用了存根方法来执行操作,但是我们收到了“握手失败”

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

例外情况

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

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

自签名证书是发送TLS证书请求吗?


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

您好,您找到解决方案了吗,我也面临同样的问题。我已通过将密钥库更改为pfx格式(PKCS12)来解决此问题。PFX文件包含私钥和证书。
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");