https的SSL证书在Android端的用(Https系列四)

  • 时间:2018-06-20 22:30 作者:php疑难杂症铺 来源:php疑难杂症铺 阅读:152
  • 扫一扫,手机访问
摘要:基于okhttp,Retrofit下,https的SSL证书在Android端的用(Https系列四)回顾前面已分别详情了https,SSL证书的生成,并完成了服务器端的https的部署 并提到一个重要的使用于用户端的证书:公钥证书 在前面文章中,自签名SSL证书对应的公钥证书为:mycer.cer

基于okhttp,Retrofit下,https的SSL证书在Android端的用(Https系列四)

回顾

前面已分别详情了https,SSL证书的生成,并完成了服务器端的https的部署

并提到一个重要的使用于用户端的证书:公钥证书

在前面文章中,自签名SSL证书对应的公钥证书为:mycer.cer(当然这名字是自己随意定的);在阿里云申请的CA证书中对应的公钥证书为:*.pem

假如有不清楚的,请看之前详情过的文章:

一:https的简单详情及SSL证书的生成

二:https的SSL证书在服务器端的部署,基于tomcat,spring boot


Android自带的可信任的CA公钥证书

还要说明一下,Android系统有自带的安卓认可的证书颁发机构(如:Wosign)颁发的可信任的CA公钥证书,大概有100多个,

可自己查看,各个手机的查看方法可可以不一样,在我的手机中,可以在下面的位置中找到:

“设置”->”更多设置“->”系统安全“->”信任的凭据”

也就是说,假如你服务器的证书是安卓认可的证书颁发机构颁发的,那么你并不需要在Android端额外安装公钥证书,否则,你就需要安装。

注:在不同版本的Android系统上,可信任的CA证书可可以是不一样的,假如你担心在别人的Android系统上可可以此CA证书不被信任,那你统一都安装也是没问题的

我在阿里云上申请的免费型DV SSL证书,是属于安卓认可的证书颁发机构颁发的,不需要额外安装,当然我们的自签名证书,是必须要安装的

其实我在测试的过程中,把自签名证书和阿里云上申请的免费型DV SSL证书都使用同样的方法安装了,都是OK的


我们下面就开始基于okhttp来安装公钥证书了

先看看我的okhttp和retrofit的gradle版本

https的SSL证书在Android端的用(Https系列四)


添加一个OkhttpManager类

统一解决OkHttpClient的证书,完整的代码如下:

https的SSL证书在Android端的用(Https系列四)

https的SSL证书在Android端的用(Https系列四)

https的SSL证书在Android端的用(Https系列四)

https的SSL证书在Android端的用(Https系列四)

https的SSL证书在Android端的用(Https系列四)


代码解释

代码不少,其实最核心的代码为:

https的SSL证书在Android端的用(Https系列四)

也就是通过

https的SSL证书在Android端的用(Https系列四)

https的SSL证书在Android端的用(Https系列四)

就可以生成安装好了可信任证书的okHttpClient

OkhttpManager说完了,接下来,就是:


Activity中用OkhttpManager

1:先把公钥证书文件(如:自签名的mycer.cer或者CA证书的:*.pem)放到assets下,

假如用AndroidStudio的同学,可可以没有assets文件夹,自己建此文件夹,如我的为:app\src\main\assets

2:直接贴Activity主要的代码:

https的SSL证书在Android端的用(Https系列四)

简单吧,主要代码就那两句,就生成了已安装公钥证书”mycer.cer”的mOkhttpClient

接下来的mOkhttpClient怎么用,大家都应该清楚了吧,假如不清楚只可以看OkHttpClient的基础内容了

好了,OkHttpClient搞掂了


接下来就到Retrofit了

大家应该知到Retrofit默认是以OkHttpClient来作为传输的,既然OkHttpClient搞掂了,那Retrofit就简单了

还是直接贴代码:

https的SSL证书在Android端的用(Https系列四)

看,只要在Retrofit中多加一句

https的SSL证书在Android端的用(Https系列四)

就把已安装了证书的mOkhttpClient作为Retrofit的传输了

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】web前端开发需要学习哪些技术(2019-09-17 18:00)
【系统环境|】学习web前端开发是正确的选择(2019-09-15 16:55)
【系统环境|】干货整理!零基础html5网站开发学习步骤方法(保存不后悔)(2019-09-10 16:27)
【系统环境|】「前端入门」前端基本概念(2019-09-07 21:36)
【系统环境|】小白入门学习web前端,这些干货不能少(2019-09-05 20:59)
【系统环境|】不是计算机专业,哪个专业更适合学习web前端(2019-09-03 20:31)
【系统环境|】入行web前端开发可以做什么工作(2019-09-02 20:51)
【系统环境|】什么是Web前端呢?为什么说web前端开发人员的薪资高、前景好呢?(2019-08-31 20:55)
【系统环境|】2019年Web前端开发的8个趋势,你知道几个?(2019-08-29 16:23)
【系统环境|】学习web前端,掌握这些,才有底气跟面试官提薪资(2019-08-28 15:23)
手机二维码手机访问领取大礼包
返回顶部