我希望我仍然有指向该方向的资源链接,但这是最终为我工作的代码。通过查看X509TrustManager的JavaDoc,看起来
TrustManager工作方式是在成功验证后不返回任何内容,否则抛出异常。因此,使用null实现时,它将被视为成功验证。然后,你删除所有其他实现。
import javax.net.ssl.*;import java.security.*;import java.security.cert.X509Certificate;public final class SSLUtil{ private static final TrustManager[] UNQUESTIONING_TRUST_MANAGER = new TrustManager[]{ new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers(){ return null; } public void checkClientTrusted( X509Certificate[] certs, String authType ){} public void checkServerTrusted( X509Certificate[] certs, String authType ){} } }; public static void turnOffSslChecking() throws NoSuchAlgorithmException, KeyManagementException { // Install the all-trusting trust manager final SSLContext sc = SSLContext.getInstance("SSL"); sc.init( null, UNQUESTIONING_TRUST_MANAGER, null ); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } public static void turnonSslChecking() throws KeyManagementException, NoSuchAlgorithmException { // Return it to the initial state (discovered by reflection, now hardpred) SSLContext.getInstance("SSL").init( null, null, null ); } private SSLUtil(){ throw new UnsupportedOperationException( "Do not instantiate libraries."); }}


