Android开发中https请求验证,如何在自定义的X509TrustManager类中,使用白名单对证书做验证

public class MyX509TrustManager implements X509TrustManager {

        private X509TrustManager tm;  

        public MyX509TrustManager(X509TrustManager tm) {  
            this.tm = tm;  
        }  

        public X509Certificate[] getAcceptedIssuers() {  
            throw new UnsupportedOperationException();  
        }  

        public void checkClientTrusted(X509Certificate[] chain, String authType)  
                throws CertificateException {  
            throw new UnsupportedOperationException();  
        }  

        public void checkServerTrusted(X509Certificate[] chain, String authType)  
                throws CertificateException {  
                                //TODO:使用白名单对证书做验证

        }  


    }

实现自己的逻辑
http://pingguohe.net/2016/02/26/Android-App-secure-ssl.html

  @Override
              public void checkServerTrusted(X509Certificate[] chain,
                      String authType)
                      throws CertificateException {
                  for (X509Certificate cert : chain) {

                      // Make sure that it hasn't expired.
                      cert.checkValidity();

                      // Verify the certificate's public key chain.
                      try {
                          cert.verify(((X509Certificate) ca).getPublicKey());
                      } catch (NoSuchAlgorithmException e) {
                          e.printStackTrace();
                      } catch (InvalidKeyException e) {
                          e.printStackTrace();
                      } catch (NoSuchProviderException e) {
                          e.printStackTrace();
                      } catch (SignatureException e) {
                          e.printStackTrace();
                      }
                  }
              }