我试图在Java 1.8的httpclient中使用带有证书的.pfx密钥库。
成功加载密钥库后,我尝试对其进行get调用。 而且我收到连接超时错误
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(new FileInputStream(new File("C:/path_to_pfx/mypfx.pfx")),
"changeit".toCharArray())
SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(ks,
"changeit".toCharArray())
.loadTrustMaterial(new TrustSelfSignedStrategy()).build();
sslsf = new SSLConnectionSocketFactory(sslcontext);
builder.setSSLSocketFactory(sslsf);
httpClient = builder.build();
httpResponse = httpClient.execute(new HttpGet(url));
调用httpClient.execute方法时,将导致连接超时错误。
我也尝试对信任材料使用“证书”,但是结果是相同的。另外设置代理无效。
我的理解是我们可以直接在Java中使用.pfx类型的密钥库来创建sslContext。我在这里做错了什么吗?我应该只使用.jks类型的密钥库吗?为什么pfx类型的密钥库不起作用?