SSLSocket自己创建一个工厂,并
HttpsURLConnection在连接之前将其设置在工厂上。
...HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();conn.setSSLSocketFactory(sslFactory);conn.setMethod("POST");...你将要创建一个
SSLSocketFactory并保留它。这是如何初始化它的草图:
KeyStore keyStore = ... TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());tmf.init(keyStore);SSLContext ctx = SSLContext.getInstance("TLS");ctx.init(null, tmf.getTrustManagers(), null);sslFactory = ctx.getSocketFactory();如果你在创建密钥库方面需要帮助,请发表评论。
这是加载密钥库的示例:
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());keyStore.load(trustStore, trustStorePassword);trustStore.close();
要使用PEM格式的证书创建密钥库,你可以使用编写自己的代码
CertificateFactory,或者仅从
keytoolJDK导入它(密钥工具不适用于“密钥项”,但对于“受信任的项”来说就很好)。
keytool -import -file selfsigned.pem -alias server -keystore server.jks



