目录
抓包的原理
抓包的步骤
1. 下载Charles
2. PC抓HTTPS协议的包
3. 移动端抓包步骤
证书的原理
抓包的原理
抓包的软件非常多,其实底层逻辑充当了一个中间人代理的角色来对HTTPS进行抓包,结合日常自己用的Charles做一个记录。首先先了解抓包的原理。
电脑上的Charles监听一个端口,最多的是8888,在测试机器上连接同一个局域网,配置网络代理,指向该PC的8888端口,这样一来测试机的所有网络通信都会被转发到PC的8888端口,进而被Charles捕获,然后就可以对数据包进行分析。经常用的网络协议分为HTTP和HTTPS,HTTPS在HTTP上进行了加密操作,所以对这两种请求进行抓包也有不同。
抓包的步骤
大致了解了原理,那么我们先可以使用起来,使用Charles抓包的步骤。
1. 下载Charles
Charles官网下载地址:https://www.charlesproxy.com/download/
2. PC抓HTTPS协议的包
步骤1:
虽然现在Charles能够直接抓包了,但是HTTPS的报文我们是抓取不了的,需要安装SSL证书才可以。Help -> SSL Proxying -> Install Charles Root Certificate
步骤2:
然后再进行信任证书,在 Mac 上的“钥匙串访问” App 中,选择其中一个钥匙串列表中的钥匙串,然后连按一个证书,设置Charles的证书为始终信任。
步骤3:
然后还需要进行ssl代理设置
打开Charles,上方菜单栏 —>Proxy —>SSL Proxy Settings —->Add,如下:
Host:填*表示所有网站都抓
Port:443
点击OK,通过以上配置后,我们抓取的信息,就都可以看到https的请求了(明文的)。
这样就可以抓PC端HTTPS的包了,具体的原理在下面阐述。
3. 移动端抓包步骤
以上步骤的操作基础上,手机端抓包 也是需要安装证书的。
步骤1:
手机端也需要安装证书
打开charlse的 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browse
步骤2:
出现弹窗,chls.pro.ssl是下载证书的地址,打开手机safari浏览器会自动弹出下载框,点击允许。
步骤3:
然后手机打开设置,会出现你刚才下载的证书,点击进去安装,ios的需要格外设置下信任证书。2个地方,好多出现抓包为unknow的原因就是没有完全信任证书。
设置->通用->关于本机->信任证书。
设置->通用->VPN与设备管理->信任证书
步骤3:
网络配置手动代理,服务器填写PC端的服务器IP,端口一般是8888,点击存储后,PC端会有是否允许抓包的弹窗,点击allow,即可进行移动端报文的获取了。
证书的原理
一系列操作之后,我们可以进行获取请求和响应的步骤了,具体的操作结合实际的业务,进行操作,Charles的功能还是很多的,修改响应数据、mock数据、模拟弱网等等,我理解用的时候再进行查询也是很ok的。
这还涉及一个问题?什么是CA证书?为什么我要安装证书??我不安装证书可以吗???
CA是“证书授权中心”的简称,是负责管理和签发证书的第三方机构。CA证书即为CA颁发的证书。证书人人都可以制作,但只有权威机构颁发的证书,大家才能一致认可。
证书的作用:
1. 验证网站是否可信(针对HTTPS)证书没有问题的标准:1、证书被某个根证书信任,2、证书上绑定的域名和该网站的域名一致,3、证书没有过期
2. 验证文件是否可信:证书还可以用来验证某个文件是否被篡改。具体是通过证书来制作文件的数字签名。
抓包使用证书的原理:
1. 关键思想
构造一个中间人代理,它有能力完成TLS/SSL握手;弄到一个根证书,并用它生成签名认证的代理服务器证书
2. 抓包代理服务器的作用
截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求
接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容
一般情况下HTTPS中是客户端对服务端做证书校验(所以抓包时候,需要客户端安装代理服务器的证书,并信任)
3. 分析chrales代理工具如何实现
Charles就是一个理想的中间人,它支持SSL握手
Charles可以自动根据根证书生成一个签名的服务器证书
Charles的官网为我们提供了一个根证书
所以记得抓包安装证书~先了解Chrales的使用,再了解一些底层的原理 有助于分析和解决问题。