Fiddler 教程

Fiddler HTTPS 抓包

什么是HTTPS?

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。设计目标主要有三个:

(1)数据保密性:保证数据内容在传输的过程中不会被第三方查看

(2)数据完整性:及时发现被第三方篡改的传输内容

(3)身份校验安全性:保证数据到达用户期望的目的地

因此,Fiddler 要实现 HTTPS 抓包关键点就是证书,有了证书才能对抓到的 HTTPS 流量进行解密/加密。

Fiddler HTTPS 抓包原理

Fiddler HTTP 抓包原理,如下图:

其实,Fiddler 是浏览器的服务器,而 Fiddler 是服务器的客户端。在没有 Fiddler 的情况下,浏览器拥有的公开证书来自服务器,服务器保存私有证书。服务器使用私有证书对数据进行加密,浏览器使用公有证书对数据解密。

此时,我们添加了一个 Fiddler 作为代理,那么此时客户端拥有的公共证书应该来自 Fiddler,而 Fiddler 拥有私有证书的同时,还拥有来自服务器的公共证书。浏览器和服务器交互如下:

  • 请求:浏览器使用 Fiddler 公共证书将数据加密,发送给 Fiddler。Fiddler 使用私有证书解密,然后将内容采用服务器的公共证书再次加密,发送给服务器,服务器使用自己的私有证书进行解密。

  • 响应:服务器使用私有证书对响应数据加密,然后发送给 Fiddler。Fiddler 将收到的数据使用服务器的公共证书解密,然后再次使用自己的私有证书加密,将再次加密后的数据发送为浏览器,浏览器收到后使用 Fiddler 的公共证书进行解密,将解密的内容最终展现给用户。

下面将介绍怎样通过 Fiddler 抓取 HTTPS 请求。

配置 & 安装证书

点击“Tools”->“Fiddler Options”->“HTTPS”,如下图:

分别勾选“Capture HTTPS CONNECTs”和“Decrypt HTTPs traffic”复选框。

“Capture HTTPS CONNECTs”表示我们能够抓取到 HTTPS 连接(Fiddler 默认情况下将 HTTPS 连接隐藏了的,查看菜单“Rules”->“Hide CONNECTs”是否被勾选)。

“Decrypt HTTPs traffic”表示会对收到的 HTTPS 流量尝试使用 Fiddler 的证书进行解码。如果勾选了该复选框,且以前没有安装 Fiddler 证书。此时,Fiddler 将弹出提示安装证书,如下图:

该提示框提示“信任 Fiddler Root 证书?”,当然信任(不信任就玩不下去了),直接点击“Yes”即可。Window 系统将弹出安全警告,如下图:

点击“是”,安装 Fiddler Root 证书到 Windows 中。接下来,提示是否将 Fiddler Root 证书添加到本机 Root 证书列表。如下图: 

直接点击“是”,系统提示证书添加成功。如下图:

如果你还是不放心证书是否真的安装成功了。可以在 HTTPS 选项卡中点击“Actions”,选择“Open Windows Certificate Manger”去打开 Windows 证书管理器。如下图:

在打开的证书管理器中,点击“操作”菜单,选择“查找证书”,在“包含”输入框中输入“Finddler”查找 Fiddler 相关的证书,如果能够正常看见 Fiddler 证书,说明证书安装成功。如下图:

抓包效果

通过前面一些列的操作,已经完成 Fiddler 抓取 HTTPS 的配置。此时,我们尝试访问一些 HTTPS 网站,查看 Fiddler 是否能够抓取到 HTTPS 请求,如下图:

如果你依然不能抓取到 HTTPS 浏览,需要检查一下你使用的浏览器是否为 Firefox,Firefox 抓取 HTTPS 流量稍微复杂些,后面章节重点介绍。请切换到,IE 或者 Chrome 浏览器。

如果还是不行,那么可以点击“HTTPS”选项卡中的“Actions”,点击“Reset All Certificates”去重置所有的 Fiddler Root 证书,重新安装证书,或者重启 Fiddler。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号