Android HTTPS 自制证书实现双向认证(OkHttp + Retrofit + Rxjava)

本文详细介绍了如何在Android应用中使用OkHttp、Retrofit和Rxjava实现HTTPS的双向认证,包括SSL/TLS协议的基础知识、证书生成流程和Retrofit的配置步骤。通过创建和交换证书,确保客户端和服务端的安全通信。
摘要由CSDN通过智能技术生成

SSL协议可分为两层:

**SSL记录协议(SSL Record Protocol):**它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。

**SSL握手协议(SSL Handshake Protocol):**它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。TLS 1.0是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本,可以理解为SSL 3.1,它是写入了 RFC的。

**该协议由两层组成: TLS 记录协议(TLS Record

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

)和 TLS 握手协议(TLS Handshake)**。

进入正文


基于Retrofit实现HTTPS思路

由于Retrofit是基于OkHttp实现的,因此想通过Retrofit实现HTTPS需要给Retrofit设置一个OkHttp代理对象用于处理HTTPS的握手过程。代理代码如下:

OkHttpClient okHttpClient = new OkHttpClient.Builder()

.sslSocketFactory(SSLHelper.getSSLCertifcation(context))//为OkHttp对象设置SocketFactory用于双向认证

.hostnameVerifier(new UnSafeHostnameVerifier())

.build();

Retrofit retrofit = new Re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值