我需要访问需要双向 SSL 的 Web 服务,我的客户端(及其服务器)具有自签名证书。
我只有以下代码:
System.setProperty("javax.net.ssl.keyStore", "path/myClient.key");
System.setProperty("javax.net.ssl.keyStorePassword", "pass");
System.setProperty("javax.net.ssl.keyStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "path/myClient.truststore");
System.setProperty("javax.net.ssl.trustStorePassword", "pass");
System.setProperty("com.sun.net.ssl.dhKeyExchangeFix", "true");
我从这里复制了 TrustModifier 来接受自签名证书: http://java.dzone.com/articles/ignoring-self-signed
但是,我仍然无法将整个东西集成到 HttpClient 中以成功连接。
有什么帮助吗?
最佳答案
您的服务器还需要信任您客户端的证书,以便在服务器端成功握手。将客户端的证书导入服务器的信任库。
关于java - 具有自签名证书的双向 SSL 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8415944/