为什么fiddler抓不到https
时间: 2023-06-01 22:02:18 浏览: 178
fiddler无法抓https.fiddler证书修复工具-易语言
### 回答1:
因为Fiddler默认只能捕获HTTP请求,而HTTPS是一种经过加密的网络传输协议,无法通过Fiddler直接捕获明文数据。如果要捕获HTTPS请求,需要进行SSL/TLS解密,需要在Fiddler中安装证书和进行相关设置。
### 回答2:
Fiddler是一款功能强大的网络调试工具,可以帮助开发人员在开发过程中分析和调试网络请求和响应。但是,有时候我们发现Fiddler无法捕获HTTPS请求和响应。这是因为HTTPS传输是加密的,而Fiddler无法直接解密并分析加密后的数据。
HTTPS传输是通过TLS/SSL协议进行加密的,其过程大概分为以下三步:
1. 客户端向服务器发起HTTPS请求,请求访问一个加密网址。
2. 服务器将证书发送给客户端。
3. 客户端验证证书的有效性,并使用证书中的公钥对一些随机生成的密钥进行加密,然后将加密后的密钥发送给服务器。服务器收到加密的密钥后使用自己的私钥进行解密,得到一组密钥。
这个过程中加密和解密的过程都需要TLS/SSL协议进行加密和解密,而Fiddler并没有TLS/SSL协议的证书,无法对加密的数据进行解密,因此无法抓取HTTPS请求和响应。
但是,Fiddler提供了一种解决方案——通过安装Fiddler的根证书使得Fiddler可以识别HTTPS请求。
安装Fiddler的根证书可以通过以下步骤实现:
1. 打开Fiddler,选择菜单栏中的“Tools”->“Options”。
2. 在弹出窗口中选择“HTTPS”选项卡,勾选“Capture HTTPS CONNECTs”和“Decrypt HTTPS traffic”。
3. 下载“DO_NOT_TRUST_FiddlerRoot.crt”证书文件。
4. 安装证书,将“DO_NOT_TRUST_FiddlerRoot.crt”证书文件导入到“受信任的根证书颁发机构”:
a. Windows:选择“开始”菜单 -> “运行” -> 输入“mmc” -> “文件” ->“添加/删除管理单元”->“证书”->“计算机账户”->“受信任的根证书颁发机构”->右键->“所有任务”->“导入”->选择“DO_NOT_TRUST_FiddlerRoot.crt”证书文件->完成。
b. Mac: 打开找“钥匙串访问器”程序->添加证书->选择“DO_NOT_TRUST_FiddlerRoot.crt”证书文件->完成。
5. 重启Fiddler。
这样,Fiddler就可以抓取HTTPS请求和响应了。但需要注意的是,抓取HTTPS请求和响应会危及用户的隐私和安全,因此,建议仅在开发和测试环境下使用。其他环境下,应该避免抓取HTTPS请求和响应。
### 回答3:
Fiddler是一个强大的网络调试工具,但在抓取HTTPS流量时会存在一些限制。主要原因是HTTPS是SSL / TLS协议的加密传输,为保证通信的安全性,加密也限制了Fiddler的能力。
首先,Fiddler默认安装是作为一个代理服务器运行的,它会在本地创建一个代理端口,客户端通过该端口连接上Fiddler代理服务器,在其它一些网络设置如PAC、代理等配置中选择并指定Fiddler代理服务器,然后从代理服务器接收请求,由代理服务器发送请求到目标主机,再由目标主机返回到代理服务器,最后由代理服务器返回给客户端。
对于HTTP流量,当客户端通过代理端口访问任意站点,流量会通过Fiddler代理服务器,因此Fiddler可以在客户端和目标主机之间捕获请求和响应并显示在窗口中。然而,在HTTPS流量的情况下,事情变得有点复杂。
首先,在HTTPS握手过程中,客户端和服务器会通过SSL / TLS交换密钥进行安全交流,因此Fiddler不能直接进行这里的加密,而是会由Fiddler生成自己的安全证书并与客户端和服务器协商使用,因此中间会增加一些代理服务器的交互流,从而影响性能。
其次,由于信息加密,Fiddler无法使用HTTPS协议的域名解析,因此无法获取SSL / TLS连接所需的主机头信息和IP地址。因此,由Fiddler截获的HTTPS流量只能看到域名和加密内容的TLS密钥,而不能得到详细的请求和响应信息。
最后,由于HTTPS通信加密,因此Fiddler无法对HTTPS流量进行分析和编辑。因此,Fiddler仅可使用有限的功能检查SSL / TLS客户端和服务器之间的连接。
总之,Fiddler虽然不能完全捕获HTTPS流量,但它仍是一个非常有用的网络调试工具。除此之外,还可以应用代理服务器与其他工具配合使用,来协助完成所需要的功能。
阅读全文