背景
公司的APP很多业务几乎都切换成了用https以后,切换之前,手机只要连上代理以后就能轻易抓包了,但切换之后,手机连上代理以后就访问不了https网址了。之前很多人说遇到连了代理后上不了网,然后就不了了之了,最近测试要用的fiddler,连了代理以后也是上不了网,但我用浏览器打开http://www.baidu.com,居然打开了,然后疑惑为什么连了代理以后用不了我们自己的APP呢?一开始真没有注意到是改成https以后才不行的,因为以前都可以的,怎么用着用着就不行了呢?折腾了好一会才发现,原来连接代理以后,是要安装证书才能访问的。
分析
安装证书前,在手机浏览器上打开了百度 http://baidu.com成功打开了,但是打开https://sina.com 就不行,并提示未授权证书,问题已经很明显了,就是https的问题,要安装证书,安装好证书应该就可以了。
安装证书
以Android手机为例,iOS 同理:
- 前提打开fiddler,分别点击Tools——Fiddler Options——HTTPS ,把 Capture HTTPS CONNECTs 和 Decrypt HTTPS traffict两个选项都已勾选上了,如图:
-
接下来你可以在手机浏览器中输入 http://10.22.0.36:8888,
其中10.22.0.36 是你的主机ip ,可以打开cmd——输入ipconfig——取IPv4 地址的值即可,如下图:
在手机浏览器中打开 http://10.22.0.36:8888以后,点击 FiddlerRoot certificate
可任意输入一个证书名称,点击“确定”即可。另外,还有一种情况,如果你还没有设置手机的锁屏密码,要先去设置,不然它会一直提示你输入密码,输入超过次数以后就不能再输了,会导致证书安装失败。
检查证书
- 证书安装成功了以后,可以检查一下证书是否安装成功==进入设置——安全——受信任的凭证——用户
看到有 DO_NOT_TRUST 说明已安装成功了。
- 安装成功了以后,连上代理,在浏览器中打开https://www.sina.com应该就可以打开了,也可以成功抓到https的包了
失败的尝试
- 在fiddler上设置可以抓取HTTPS请求(无效)
- 把允许远程计算机连接的选项勾选上了,打开fiddler——Tools—>Fiddler Options——Connection,勾选Allow remote computers to connect(也无效)
- 手机连上主机以后,关掉电脑的防火墙(网上说有效,但我尝试了,还是无效)
打开控制面板——系统与安全——Windows防火墙——启用防火墙
将防火墙关掉以后尝试操作,还是访问不了https(误以为是上不了网)
上面的方法都不行以后,又折腾了好一会,终于找到问题了,原来也是要安装证书。
小结
虽然是一个很小的问题,但被自己小小的折腾精神感动到了。同一个问题,网上有各种说法,能找到击中自己问题的方法很重要,自己也要学会多思考多出对比,才能有更大的进步。