IOS Charles HTTPS接口抓取

Mac使用Charles抓取ios手機APP中的https請求

1.配置Http代理

?Port為監聽端口號,默認為8888,勾選Enable transparent HTTP proxying,接著勾選SOCKS proxy,可以監聽Socks請求

2.安裝Charles Root Certificate,路徑為Help->SSL Proxying ->InstallCharles Root Certificate

?3.安裝后在鑰匙串中會有一條未信任的證書,雙擊該證書

?4.跳轉到該證書的設置,修改到如圖

4.配置SSL代理,Proxy->SSL Proxying Settings選項,點add添加需要監視的域名,支持 *號通配符,端口一般都是443


?5.配置手機的證書 help->SSL Proxying install Charles

6.使用手機配置代理地址ip和端口號,配置完成之后在手機瀏覽器中輸入chls.pro/ssl下載Charles證書并根據提示安裝

7.安裝完成后IOS手機需要在設置->通用->描述文件與設備管理中信任安裝的Charles Proxy CA證書

8.最后需要在IOS手機中設置->通用->關于本機->證書信任設置-> 找到charles proxy custom root certificate然后信任該證書即可

Charles 使用過程中遇到問題

1、部分APP無法正常請求網絡;網頁能打開,但是顯示的全是HTML代碼。

  解決: 我之前設置的端口號是8888, 我改為8899就解決了。

2、手機安裝證書,無法打開chls.pro/ssl

  解決: 應該也是端口號問題,更改端口號后,手機技能能通過該網址下載證書了。

3、SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations

解決如下:

4、You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.

解決如下:

iPhone系統更新到iOS 10.3后,https的請求都會失敗,提示錯誤信息為Failure SSLHandshake: Received fatal alert: unknown_ca?和You may need to configure your browser or application to trust the Charles Root Certificate.?然而之前任何問題都沒有,并且相關設置都正確:Mac上安裝了Charles的根證書,并且設置了始終信任,然后手機上也登錄了http://chls.pro/ssl安裝了描述文件,一切都按正常程序走的,但是錯誤始終無法解決.

相關環境:

Charles 4.2

iPhone 7P iOS 11.0.2

原因

設置->通用->描述文件->charles proxy custom root certificate

雖然charles的根證書已經在安裝列表中顯示,但它是被關閉的。在iOS 10.3之前,當你將安裝一個自定義證書,iOS會默認信任,不需要進一步的設置。而iOS 10.3之后,安裝新的自定義證書默認是不受信任的。如果要信任已安裝的自定義證書,需要手動打開開關以信任證書。

解決

設置->通用->關于本機->證書信任設置-> 找到charles proxy custom root certificate然后信任該證書即可.


?

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容