zoukankan      html  css  js  c++  java
  • Android HTTPS如何10分钟实现自签名SSL证书

    前言

    去年公司内一个应用加了支付宝支付功能,为了保证安全,支付请求链接写成了https。

    由于公司服务器使用的是的自签名证书,而在Android系统中自己签署的不能通过验证的,所以会抛出错误。

    于是我网上查找了很多资料,也尝试过几种方法,过程都很繁琐,搞了一通宵都不行。

    幸亏通过一个朋友找到了以下这个简便的开源库

    https://github.com/lizhangqu/CoreUtil

    然后用里面的SSLUtil,10分钟就解决了。

    实现自签名SSL证书

    1.访问以上开源库网址下载SSLUtil

       

    2.把服务器生成的自签名证书cer文件放到在assets目录下,这里以demo.cer做示范

    3.初始化SSLSocketFactory

       在http请求类的constructor中添加以下代码,这里以HttpRequest做示范

     socketFactory = SSLUtil.getSSLSocketFactory(context.getAssets().open("demo.cer"));

       

    4.添加信任https证书

       在new OKHttpClient后添加以下代码

     if (url.startsWith("https://") && socketFactory != null) {
    client.setSslSocketFactory(socketFactory);
    }

     

    以上这几步就是全部步骤了,如果你还是觉得麻烦,推荐使用Android-ZBLibray这个Android快速开发框架,里面自签名已全部封装好,只需替换下demo.cer文件即可。

    Android快速开发框架-ZBLibrary 源码下载地址如下:

    https://github.com/TommyLemon/Android-ZBLibrary

  • 相关阅读:
    个人作业——软件评测
    结对第二次作业
    寒假作业(2/2)
    寒假作业(1/2)
    markdown整理
    我们一定会在人生的更高处相见的
    时间复杂度 分析 可能算法
    有关数学 结论 规律 题目 小结
    jzyz 题库 选做 及 知识小结
    隔板法
  • 原文地址:https://www.cnblogs.com/tommylemon/p/5454303.html
Copyright © 2011-2022 走看看