我正在尝试访问动态网址,例如http或https。 如果它的http,我可以打它。但是在https的情况下,我得到了错误 收到致命警报:internal_error
我可以使用邮递员访问相同的网址并获得结果。 看来它关于ssl证书。 但是我没有在服务器上配置ssl。 我找到了一些指定生成jks文件的解决方案,但不确定如何在Java中创建和使用它。
在通过HttpClient命中https请求时,我得到了以下代码,但是在生成jks并将其存储然后使用时陷入了困境。
KeyStore keyStore = KeyStore.getInstance("PKCS12");
FileInputStream instream = new FileInputStream(new File("example.jks"));
try {
keyStore.load(instream, "password".toCharArray());
} finally {
instream.close();
}
// Trust own CA and all self-signed certs
SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, "password".toCharArray())
// .loadTrustMaterial(trustStore, new TrustSelfSignedStrategy())
.build();
// Allow TLSv1 protocol only
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, new String[] { "TLSv1" },
null, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); // TODO
CloseableHttpClient client = HttpClients.custom()
.setHostnameVerifier(SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER) // TODO
.setSSLSocketFactory(sslsf).build();