【发布时间】:2011-12-07 13:19:49
【问题描述】:
我需要访问需要双向 SSL 的 WebService,我的客户端(及其服务器)具有自签名证书。
我只有以下代码:
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 中以成功连接。
有什么帮助吗?
【问题讨论】:
-
如果您的商店中有证书,则不得使用 TrustModifier。 TrustModifier 只是禁用证书检查。请描述您收到的异常/错误消息。
-
如果您的客户端证书是自签名的,您还需要更改服务器上的信任设置。与其放松信任设置,不如将自签名证书显式导入各自的信任存储区(否则,使用 SSL 毫无意义)。
标签: java ssl httpclient