背景
公司的APP很多業(yè)務(wù)幾乎都切換成了用https以后,切換之前,手機(jī)只要連上代理以后就能輕易抓包了,但切換之后,手機(jī)連上代理以后就訪(fǎng)問(wèn)不了https網(wǎng)址了。之前很多人說(shuō)遇到連了代理后上不了網(wǎng),然后就不了了之了,最近測(cè)試要用的fiddler,連了代理以后也是上不了網(wǎng),但我用瀏覽器打開(kāi)http://www.baidu.com,居然打開(kāi)了,然后疑惑為什么連了代理以后用不了我們自己的APP呢?一開(kāi)始真沒(méi)有注意到是改成https以后才不行的,因?yàn)橐郧岸伎梢缘?,怎么用著用著就不行了呢?折騰了好一會(huì)才發(fā)現(xiàn),原來(lái)連接代理以后,是要安裝證書(shū)才能訪(fǎng)問(wèn)的。
分析
安裝證書(shū)前,在手機(jī)瀏覽器上打開(kāi)了百度 http://baidu.com成功打開(kāi)了,但是打開(kāi)https://sina.com 就不行,并提示未授權(quán)證書(shū),問(wèn)題已經(jīng)很明顯了,就是https的問(wèn)題,要安裝證書(shū),安裝好證書(shū)應(yīng)該就可以了。
安裝證書(shū)
以Android手機(jī)為例,iOS 同理:
- 前提打開(kāi)fiddler,分別點(diǎn)擊Tools——Fiddler Options——HTTPS ,把 Capture HTTPS CONNECTs 和 Decrypt HTTPS traffict兩個(gè)選項(xiàng)都已勾選上了,如圖:
-
接下來(lái)你可以在手機(jī)瀏覽器中輸入 http://10.22.0.36:8888,
其中10.22.0.36 是你的主機(jī)ip ,可以打開(kāi)cmd——輸入ipconfig——取IPv4 地址的值即可,如下圖:
在手機(jī)瀏覽器中打開(kāi) http://10.22.0.36:8888以后,點(diǎn)擊 FiddlerRoot certificate
可任意輸入一個(gè)證書(shū)名稱(chēng),點(diǎn)擊“確定”即可。另外,還有一種情況,如果你還沒(méi)有設(shè)置手機(jī)的鎖屏密碼,要先去設(shè)置,不然它會(huì)一直提示你輸入密碼,輸入超過(guò)次數(shù)以后就不能再輸了,會(huì)導(dǎo)致證書(shū)安裝失敗。
檢查證書(shū)
- 證書(shū)安裝成功了以后,可以檢查一下證書(shū)是否安裝成功==進(jìn)入設(shè)置——安全——受信任的憑證——用戶(hù)
看到有 DO_NOT_TRUST 說(shuō)明已安裝成功了。
- 安裝成功了以后,連上代理,在瀏覽器中打開(kāi)https://www.sina.com應(yīng)該就可以打開(kāi)了,也可以成功抓到https的包了
失敗的嘗試
- 在fiddler上設(shè)置可以抓取HTTPS請(qǐng)求(無(wú)效)
- 把允許遠(yuǎn)程計(jì)算機(jī)連接的選項(xiàng)勾選上了,打開(kāi)fiddler——Tools—>Fiddler Options——Connection,勾選Allow remote computers to connect(也無(wú)效)
- 手機(jī)連上主機(jī)以后,關(guān)掉電腦的防火墻(網(wǎng)上說(shuō)有效,但我嘗試了,還是無(wú)效)
打開(kāi)控制面板——系統(tǒng)與安全——Windows防火墻——啟用防火墻
將防火墻關(guān)掉以后嘗試操作,還是訪(fǎng)問(wèn)不了https(誤以為是上不了網(wǎng))
上面的方法都不行以后,又折騰了好一會(huì),終于找到問(wèn)題了,原來(lái)也是要安裝證書(shū)。
小結(jié)
雖然是一個(gè)很小的問(wèn)題,但被自己小小的折騰精神感動(dòng)到了。同一個(gè)問(wèn)題,網(wǎng)上有各種說(shuō)法,能找到擊中自己?jiǎn)栴}的方法很重要,自己也要學(xué)會(huì)多思考多出對(duì)比,才能有更大的進(jìn)步。








