暫時(shí)不明確是從哪一個(gè) Beta 版本開始,Charles 無法正常抓 iOS 11 Developer Beta
版的 https 請求。筆者是升級(jí)到 iOS11 Beta5 以后才發(fā)現(xiàn)這個(gè)問題。表現(xiàn)為指定抓取的 Https 請求全部
一開始以為是Charles提供的自簽名根證書失效,更新到了最新版的 Charles 4.1.4,依然無解。最終才發(fā)現(xiàn),iOS 是在原有安裝根證書的基礎(chǔ)上,又增加了一步信任的過程,不知道這個(gè)操作會(huì)不會(huì)帶到正式版,目測可能性很高。
解決方案
- 按照以往版本安裝 Charles 自簽名根證書
- Mac 上啟動(dòng) Charles,在同一個(gè)局域網(wǎng)內(nèi),把 iOS 設(shè)備的代理設(shè)置到 Mac機(jī)的 Charles 代理端口上。假定 Mac 機(jī) IP 為192.168.1.10,Charles 的默認(rèn)端口號(hào)為 8888,則設(shè)置到192.168.1.10:8888。
- 在 Safari 中訪問
http://chls.pro/ssl,根據(jù)提示輸入鎖屏密碼,安裝自簽名根證書。
到了這一步,iOS 10 及以下的操作系統(tǒng)就能正常抓到 https 的請求內(nèi)容。但 iOS 11則不行,請求狀態(tài)顯示 Blocked。
- 打開【設(shè)置】>【通用】>【關(guān)于本機(jī)】>【證書信任設(shè)置】
把剛才添加的證書后面的 Switch 打開。

【設(shè)置】>【通用】>【關(guān)于本機(jī)】>【證書信任設(shè)置】
此時(shí),Charles 就可以正常捕獲 Https 請求。
轉(zhuǎn)載請注明出處,原文地址:http://www.itdecent.cn/p/4005cf4f370d《解決Charles無法正常抓包iOS 11中的Https請求》