【发布时间】:2019-10-15 15:09:49
【问题描述】:
我需要创建一个带有密钥库的 Web 服务客户端。但这是错误:
sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径
我的代码:
private SSLSocketFactory getFactory() throws Exception {
File pKeyFile = new ClassPathResource("jks/dex-client-issuer-wss.jks").getFile();
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("PKIX");
KeyStore keyStore = KeyStore.getInstance("JKS");
InputStream keyInput = new FileInputStream(pKeyFile);
keyStore.load(keyInput, pass.toCharArray());
keyInput.close();
keyManagerFactory.init(keyStore, pass.toCharArray());
SSLContext context = SSLContext.getInstance("TLS");
context.init(keyManagerFactory.getKeyManagers(), null, new SecureRandom());
return context.getSocketFactory();
}
这是http连接:
URL url = new URL("https://dexxis-demo1.gemalto.com/DEX/communication/issuer-interface");
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
con.setSSLSocketFactory(getFactory());
我只有一个与soap ui一起使用的dex-client-issuer-wss.jks文件,我该如何创建与这个证书文件的连接?
【问题讨论】:
-
您确定找到了 jks 文件吗?
-
嗨,是的,我确定文件是正确的并且文件类找到了它
标签: java keystore webservice-client