证书检测问题"/>
Android 证书检测问题
为了避免中间人攻击,当终端进行Https访问时,会进行证书验证的工作。
证书验证的基本原理就是:
逐步验证整个证书链,直到找到一个可信的根证书。
如果找不到可信的根证书,就会抛出CertificateException。
有的时候出于一些目的,我们想自己定义证书验证的逻辑,
此时就需要参考一些套路了,其中最主要的就是创建自己的TrustManager。
既然要讲套路,那么就直接来demo了:
..................
private static int checkCertificate() {int rst = RESULT_SAFE;//需要进行Https连接HttpsURLConnection conn = null;try {//Https连接可以指定SSLSocketFactorySSLSocketFactory sf = null;try {//创建SSLContextSSLContext sc = SSLContext.getInstance("TLS");//指定我们自定义的TrustManagersc.init(null, createTrustManager(), null);sf = sc.getSocketFactory();} catch (Exception e) {.........}URL url = new URL(TEST_URL_HTTPS);//openConnection仅创建出HttpsURLImplConnection,没有进行实际的网络访问//还可以设置参数conn =
更多推荐
Android 证书检测问题
发布评论