fiddler怎么抓https的包

2024-11-22 19:58:02
推荐回答(1个)
回答1:

方法/步骤安装完Fiddler后,我们每次打开浏览器输入url,Fiddler便会捕获到我们的http请求(Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888.当浏览器打开时Fiddler会自动设置代理,退出的时候它会自动注销代理,这样就不会影响别的程序)。但是,如果要捕获https的请求,我们还需要进行一些额外的设置。要抓取走HTTPS的JS内容,Fiddler必须解密HTTPS流量。但是,浏览器将会检查数字证书,并发现会话遭到窃听。为了骗过浏览器,Fiddler通过使用另一个数字证书重新加密HTTPS流量。Fiddler被配置为解密HTTPS流量后,会自动生成一个名为DO_NOT_TRUST_FiddlerRoot的CA证书,并使用该CA颁发每个域名的TLS证书。若DO_NOT_TRUST_FiddlerRoot证书被列入浏览器或其他软件的信任CA名单内,则浏览器或其他软件就会认为HTTPS会话是可信任的、而不会再弹出“证书错误”警告。首先,打开Fiddler,在菜单栏中依次选择【Tools】->【FiddlerOptions】->【HTTPS】,勾上如下图的选项。勾上后,Fiddler会提示你安装一个证书。安装完后点击上图中的"ExportRoot.."按钮,将证书下载到桌面。接着将证书导入到浏览器。这里以chrome举例,依次选择【设置】->【管理证书..】将保存在桌面的证书导入即可(其他浏览器类似,通常有个“证书”选项设置)。也可以直接双击下载下来的证书,进行安装。我们打开,这时就可以愉快地捕获https请求了!细心的你可能会发现,在https的请求中夹杂着一些http的请求,并且该session的Host参数是个诡异的"Tunnelto”,什么鬼?StackOverflow里早已有精彩解答,或者可以直接看这里,简单地说fiddler当做代理转发https请求的时候,就会产生"CONNECTTunnels",所以大可忽略它。