https的SSL证书在Android端的用(Https系列四)
基于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版本
添加一个OkhttpManager类
统一解决OkHttpClient的证书,完整的代码如下:
代码解释
代码不少,其实最核心的代码为:
也就是通过
再
就可以生成安装好了可信任证书的okHttpClient
OkhttpManager说完了,接下来,就是:
Activity中用OkhttpManager
1:先把公钥证书文件(如:自签名的mycer.cer或者CA证书的:*.pem)放到assets下,
假如用AndroidStudio的同学,可可以没有assets文件夹,自己建此文件夹,如我的为:app\src\main\assets
2:直接贴Activity主要的代码:
简单吧,主要代码就那两句,就生成了已安装公钥证书”mycer.cer”的mOkhttpClient
接下来的mOkhttpClient怎么用,大家都应该清楚了吧,假如不清楚只可以看OkHttpClient的基础内容了
好了,OkHttpClient搞掂了
接下来就到Retrofit了
大家应该知到Retrofit默认是以OkHttpClient来作为传输的,既然OkHttpClient搞掂了,那Retrofit就简单了
还是直接贴代码:
看,只要在Retrofit中多加一句
就把已安装了证书的mOkhttpClient作为Retrofit的传输了
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » https的SSL证书在Android端的用(Https系列四)