【问题标题】:Two-way SSL Client with Self-Signed Certificates带有自签名证书的双向 SSL 客户端
【发布时间】: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


【解决方案1】:

您的服务器还需要信任您的客户端证书,以便在服务器端成功握手。将客户端的证书导入服务器的信任库。

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 2020-11-23
    • 2010-11-13
    • 2020-10-20
    • 2011-06-11
    • 2022-01-07
    • 2022-08-22
    • 2015-06-18
    相关资源
    最近更新 更多