前言

去年公司内一个应用加了支付宝支付功能,为了保证安全,支付请求链接写成了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

Android HTTPS如何10分钟实现自签名SSL证书的更多相关文章

  1. 【倒腾HTTPS】Nginx for Docker自签名SSL证书

    前言 合格的web程序员, 必须能自由在 IIS. Nginx. Nginx for Docker上配置Https服务, 博客最近将专题记录 Https  &   Hsts 如何申请适用于生产 ...

  2. https 自签名SSL证书

    介绍 TLS或称传输层安全性,及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装中的Web协议. 使用这种技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部各方拦截 ...

  3. 我们在部署 HTTPS 网站时,该如何选择SSL证书?

    我们在部署 HTTPS 网站时,该如何选择SSL证书? 首次部署HTTPS网站的同学对选择什么样的SSL证书多多少少都有点迷茫. 这里考虑的因素确实不少:是否支持多域名.泛域名,价格,信息泄露的保额, ...

  4. ASP.NET Web API编程——使用自签名SSL证书

    1自签名SSL证书的创建 创建自签名SSL工具xca为:https://sourceforge.net/projects/xca/ 创建过程 1)创建根证书 打开软件,界面如下. 点击,看到下拉菜单, ...

  5. tomcat 配置自签名ssl证书

    背景:据说17年苹果app必须走https协议与后台交互了,网上各种搜索最后还是发现有2篇写的比较全面,折腾后总结出2种实现方式.在这里记录,方便有共同需求的同学们参考 本文只介绍生成自签名ssl证书 ...

  6. Linux中快捷生成自签名ssl证书_113资讯网

    一.生成CA私钥 mkdir ca cd ca #创建私钥 (建议设置密码) openssl genrsa -des3 -out myCA.key 2048 生成CA证书 # 20 年有效期 open ...

  7. HTTP和HTTPS有什么区别? 什么是SSL证书?使用ssl证书优势?

    什么是SSL? SSL是指安全套接层协议(以及传输层协议TLS),位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持,是目前使用最广泛的安全协议.它为互联网或内部网络连接,进行操作的两台 ...

  8. QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种,实测成功)

    以VS开发为例.因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com ...

  9. QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种)

    因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com/product ...

随机推荐

  1. 在ubuntu on windows 上安装jekyll

    已知问题 安装ruby之后,重新启动ubuntu on windows,输入ruby命令,提示找不到. 发现的解决办法 执行下面命令 source /home/xxxx/.rvm/scripts/rv ...

  2. python编译以及反编译

    在Python2.3之前Python自带反编译的工具,高版本的貌似这个反编译的已经不能用了. 据说是在Python2.7上最好用的反编译工具uncompyle 代码地址 http://github.c ...

  3. android广告平台介绍

    广告模式:   广告条:最普遍的广告模式,嵌入在应用界面内,用户点击行为会带来收入.   积分墙:应用通过限制功能.去广告等引导用户进入积分墙页面下载广告应用得到积分来换取使用的模式,用户安装完推荐广 ...

  4. ajax跨域解决方案(服务端仅限java)

    楼主前端知识菜鸟,高手勿喷,在此记录工作中遇到的问题及解决方案,大神请滤过 方法1.jsonp(js客户端ajax请求参数方式设置) 方法2.服务端接口设置: HttpServletResponse ...

  5. tomcat Connector 连接器

    连接器的核心功能,本文去除非核心功能,留下整个程序的框架,便于理解. 1.接受连接请求 2.创建request,和response. 3.调用容器对应的Invoke方法, 首先看类的依赖结构. 1.C ...

  6. C语言基础--宏

    宏在C语言中经常使用,在linux的源码中可以看到很多宏的高级应用.因此不理解宏,就很难理解代码.本文参考一些互联网资料做一些总结,希望给大家带来帮助. 先说说使用宏的优点及缺点: 优点: 1.提高代 ...

  7. bzoj 3529 [Sdoi2014]数表(莫比乌斯反演+BIT)

    Description 有一张N×m的数表,其第i行第j列(1 < =i < =礼,1 < =j < =m)的数值为能同时整除i和j的所有自然数之和.给定a,计算数表中不大于a ...

  8. 题目1043:Day of Week(输入日期与当前日起天数差%7,在做相关星期调整)

    题目描述: We now use the Gregorian style of dating in Russia. The leap years are years with number divis ...

  9. IComparer接口与

    IComparable比较接口,继承此接口可对lis<T>调用sort进行排序 或者调用sort时可以为sort方法提供继承了IComparer的比较器

  10. OpenCV - Operations on Arrays 对数组(矩阵)的一些操作

    Function (函数名) Use (函数用处) add 矩阵加法,A+B的更高级形式,支持mask scaleAdd 矩阵加法,一个带有缩放因子dst(I) = scale * src1(I) + ...