我已经编写了一个Java程序,该程序使用axis2库通过存根调用Web服务。必须使用客户端证书以安全的方式完成此操作。这就是为什么我要寻找一种引用包含所需证书的密钥库和信任库的原因。 我搜索了互联网,发现以下代码行可以完成后一个请求:
File keystoreFile = new File("C:\\storage\\mykeystore");
URL keystoreURL = keystoreFile.toURI().toURL();
File truststoreFile = new File("C:\\storage\\cacerts");
URL truststoreURL = truststoreFile.toURI().toURL();
Protocol authhttps = new Protocol("https", newAuthSSLProtocolSocketFactory(keystoreURL, kspwd, truststoreURL, "changeit"), 443);
Protocol.registerProtocol("https", authhttps);
String endpoint = "https://*url_to_endpoint*";
TestServiceStub stub = new TestServiceStub(endpoint);
...
执行程序时,我收到握手错误。 我不确定以上几行是否足以将客户端证书提交给调用的Web服务端点。因为我很确定自己已经正确设置了密钥库和信任库,所以我认为它们可能没有真正加载或应用,但是我不确定。
在互联网上,我发现了几个类似的请求,但是没有找到任何信息可以引导我找到解决方案。
因此欢迎您提供有关此问题的任何提示。