先上一张fiddle捉取成功图【版本需4.0以上,并非所有https数据可抓取,具体原因未知】
1.先对Fiddler进行设置【打开Fiddler ——> Options .然后打开的对话框中,选择HTTPS页】(一定要设置):
勾选“CaptureHTTPS CONNECTs”,接着勾选“Decrypt HTTPS traffic”。
同时,由于我们是通过WiFi远程连过来,所以在下面的选项框中选择“...fromremote clients only”。
说明:( from all processes 来自所有的进程,包括客户端和浏览器
from browsers only 只接受来自浏览器的请求
from non-browsers only 只接受来自非浏览器的请求
from remote clients only 只接受来自远程的客户端请求
)
如果你要监听的程序访问的HTTPS站点使用的是不可信的证书,则请接着把下面的“Ignore servercertificate errors”勾选上。
2.设置监听端口【选择 Connections tab页】(一定要设置)
监听端口默认是8888,你可以把它设置成任何你想要的端口。勾选上“Allow remote computersto connect”。
为了减少干扰,可以去掉“Act assystem proxy on startup”。
3.设置手机wifi代理
1) 点击局域网后面的惊叹号处弹出的修改网络,进入高级设置【安卓】或配置代理【ios苹果】
2) 在https代理处,选择手动模式,分别输入电脑ip(比如这里是192.168.0.126),端口号是8888
4.IOS自带浏览器打开地址【代理ip是192.168.0.126,那么手机浏览器访问的是 http://192.168.0.126:8888】,点击FiddlserRoot certificate下载证书,然后安装(上面一定要设置那些要设置,不然无法访问该页面)
5. 设置代理后,测试手机是否可以正常打开网络
测试设置代理后,手机是否可以正常打开网络,尤其是https协议的网站,比如百度
很多时候,是不能正常打开网页的,打开手机的默认浏览器,会弹出一个是否信任该网页的提 示,对于iPhone手机,会弹出不受信任的证书
6.注意
1)在PC切换wifi网络后,ip会变化,那么在手机端,需要重新安装一下FiddlerRoot certificate 安全证书,然后重新设置代理。
2) 如果在设置代理后,手机不能正常打开网页,很多时候都是由于Fiddler的安装证书存在问题,比如没有被授权。
3) 不同的手机,安装Fiddler Root certificate 证书的时候,有点不一样,比如小米手机,需要先下载Fiddler证书,然后从 设置->系统安全>从存储设备安装 (按照提示操作即可)。
设置好后可以进行抓包,如果以上方法设置依然无效,可以进行下面设置:
iOS10解决方案【已鉴定】:设置——通用——关于本机——证书信任设置,找到fiddler的证书【DO_NOT_TRUST_FiddlerRoot】,开启(相当于同意全量监控,所以其他应用不要乱开通)。再试试抓包,就可以显示HTTPS了
api24解决方案【未鉴定】:安卓没有提供系统层面上的设置,所以只能在应用上下功夫了,需要在应用代码配置中进行配置,相当于开发者留后门,否则就只能root设备,然后绕过证书验证了。严格意义上来说,安卓这是无解的。下面提供代码配置内容吧
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-config>
</network-security-config>