众所周知 Fiddler 是一个非常实用的 抓包工具 而且 有很多的 扩展功能可以去官网下载
我们在开发中,难免需要抓包工具来查看接口数据 或者 测试接口的安全性, 如未签名而进行值的修改.
下面将介绍它的安装以及配置 证书 来抓取HTTPS加密信息
1.官网下载 https://www.telerik.com/fiddler (虽然安装没什么好说的,但还是写一下,走完整的流程)
点击 Free download 开始免费下载 之后会进入下载页面,此时会问你准备如何使用 Fiddler? (安装了不同扩展功能的版本)选择好对应的版本进行下载
如果顺利则直接成功的下载好安装包
当然其实直接在百度搜索 并下载 也很省事
双击安装包.exe 可执行文件
选择好安装路径,install 并 运行
此时我们不做任何配置的情况下 已经可以抓取 HTTP 请求 (明文不解释,当然也需要请求走系统代理 火狐游览器需要设置“手工配置代理”)
但是我们如果项目中使用了HTTPS 请求,由于HTTPS请求的安全性,所有数据都是加密的,那么我们怎么抓取其中的信息呢?
首先我们要配置一下 Fiddler 的证书
为什么要配置这个玩意呢? 有人会问, 那么我们先来简单看一下原理
1. Fiddler 拦截到我们自己客户端的HTTPS请求。
2.把拦截到的请求转发给请求服务器。
3.请求服务器响应,并生成证书文件发送给我们客户端,Fiddler 拦截,获取到请求服务器响应的证书文件,并把我们配置的伪造证书发送给我们自己的客户端。
4.客户端接受到伪造证书,再次请求数据。数据已经根据伪造证书加密。
5.Fiddler 拦截获取其中所有请求信息,再根据3,步骤中拦截到的正真证书文件 进行信息加密,发送给请求服务器。
总体来说, Fiddler 起到了中间转发的角色。
Fiddler 证书的配置:
1.Tools -> Options -> HTTPS
点击 Decrypt HTTPS traffic 选中 from all processes
2.Actions -> Trust Root Certificate
yes
是
3.Actions—–>open windows certificate manager 或者 win + r 输入 certmgr.msc
查看证书是否已安装成功。
此时已经可以查看HTTPS请求中的参数,当然别忘了 启动拦截 File -> Capture Traffic
当然这是正常流程,有些不幸运的朋友可能会出现种种问题 :
(我出现这个问题主要是去官网下载的版本出现此问题,不知道是电脑系统问题还是怎么)
在第2步骤中的 Actions -> Trust Root Certificate 出现
(无法配置windwos信任Fiddler证书,这个原因应该是官网下载好的Fiddler没有包含证书,需要自己生成,但是我在我的笔记本电脑上直接可以操作,这就很尴尬,只能认为是系统问题,不管怎么样,我们需要自己生成并配置证书)
解决方案:
1.win+r 打开 cmd
2.进入到Fiddler 安装文件夹中 执行
makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012
再重复一次 Actions -> Trust Root Certificate 操作 发现可以正常出现证书配置。
这里还有可能出现 虽然证书已经安装 但是 还是不能获取到证书 从而导致不能解密HTTPS中信息 的情况 报错信息如下:
我试着使用了fiddlercertmaker工具。 这次在使用 fiddlercertmaker 之前 我已经执行了此证书生成命令
makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012
不用cmd生成证书直接使用fiddlercertmaker生成证书是否可行?为了解开心中的疑惑,之后我又测试了一次,确实只需要执行fiddlercertmaker即可。
安装证书和fiddler版本一定要对应
之后就成功解决此问题: