说明:
看博客的过程中做的思维导图,截图贴在这里.仅是个笔记和摘要,不能算真正的文章.
证书的分类
按适用的域名数量
按认证等级
按签发主题
这里涉及到证书链的概念.这也是我们后续编程处理需要理解的一个概念
证书链
证书的验证流程
证书链的一些例子
百度的
12306
let`s encrypted
可以看到,根证书的有效期是近20年.而let`s encrypted自己的证书有效期是3年.
不同类型的证书,浏览器不同的安全标识
导出证书
(以导出let`s encrypted网站的证书的根证书DST Root CA X3为例)
证书的选择
以上的都是讲证书,下面看看https通信原理
原理
基本原理
一次通信过程(改进后的tls)
第一次握手
第二次握手
后续真正数据的传输
安全性和算法改进
相关算法
在安卓客户端的使用(retrofit/okhttp中)
https的抓包
抓包工具的原理:
原理就是请求/响应的拦截和转发.
那么,要在拦截https,获取到里面的内容,就应该做到:
对于客户端,抓包工具就是服务器,https前两次握手要通过抓包工具提供的证书完成.通过伪装成服务器,拿到真正的解密后的请求内容.
对于服务器,抓包工具就是客户端,这里通信的前两次握手是利用服务器下发的证书完成的.这个过程相信抓包工具内部已经处理好了.
现在问题是,抓包工具提供的证书一般都是不在系统根证书列表中,所以我们需要做的是,将抓包工具提供的证书安装到我们的手机/模拟器/操作系统,这样https第一次握手就可以通过,然后所有请求就可以经抓包工具显示并转发了.
怎么拿到抓包工具的证书?
很简单,去访问抓包工具的服务器:
比如fiddler:
下载后放到手机里,在”设置-安全-安装凭据”里安装就行了.
当然,fiddler要用https抓包还有开启它的https抓包功能:
那个下拉框可以选择 抓所有进程/只抓浏览器/只抓远程端(手机).
参考/学习资料
图解SSL/TLS协议
SSL/TLS协议运行机制的概述
Retrofit中如何正确的使用https?
HTTPS理论基础及其在Android中的最佳实践