AND_YOU_with_ME 2017-03-22 01:23 采纳率: 0%
浏览 9470
已结题

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:使用白名单对证书做验证

        }  


    }
  • 写回答

1条回答 默认 最新

  • oyljerry 2017-03-22 03:14
    关注

    实现自己的逻辑
    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();
                          }
                      }
                  }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料