java - 具有自签名证书的双向 SSL 客户端

标签 java ssl httpclient

我需要访问需要双向 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/

相关文章:

java - 如何仅为一个特定类创建新的 Spring bean,而不是为应用程序的其余部分创建 Singleton

java - 无法在 org.eclipse.ui.internal.ViewReference.createErrorPart 处创建 View : Drag Placerholder; java. lang.Exception

java - SSL 握手失败 - HttpClient 4.1.2

ssl - ESP32 SSL 连接在 CA 证书为常量时有效,但在从文件中读取时无效

java - Apache httpclient 4.5.3 SPNEGO 握手不存储 cookie

c# - 商店通用应用程序上的 WebClient

java - Android 编程 HtmlUnit

java - 将缓冲区绑定(bind)到多个目标

java - 按一定顺序排列 boolean 标志以获得更好的性能是否有意义

Java:内部类传值的线程安全