它通过SSLContext完成。初始化一个,然后使用它的套接字工厂创建HttpsConnection实例。
这是我如何在应用程序中进行管理的粗略示例:
SSLContext sc = SSLContext.getInstance("SSL");sc.init(myKeyManagerFactory.getKeyManagers(), myTrustManagerArray, new java.security.SecureRandom());HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());之后,您对https站点的openConnection()调用将使用您在此处初始化的sslsocketfactory。
在此,供TrustManager在ssl上下文中使用的代码将信任所有证书:
TrustManager[] myTrustManagerArray = new TrustManager[]{new TrustEveryoneManager()};class TrustEveryoneManager implements X509TrustManager { public void checkClientTrusted(X509Certificate[] arg0, String arg1){} public void checkServerTrusted(X509Certificate[] arg0, String arg1){} public X509Certificate[] getAcceptedIssuers() { return null; }}从Bruno更新:当心,信任任何证书,无论证书多么方便,都会使连接容易受到MITM攻击



