charles 安裝 ssl_最全面的解決Charles手機抓包的證書問題(步驟非常詳細)

源自公眾號文章: 徹底解決Charles手機抓包的證書問題

簡介: Charles 抓包是日常開發當中經常會用到的技術, 在 Android 6 之前, 手機系統既信任系統內置的證書, 也信任用戶自己安裝的證書, 但是在 Android 7 之后, 卻發生了變化, 手機系統只信任系統內置的根證書. 當然了, 這是為了手機系統更安全. 但是這樣以來, 原來抓包的方法就失效了. 本文主要全面講解 IOS 和 Android 系統如何去配置根證書. 徹底解決抓包所遇到的最頭疼的問題.

Charles 抓包前的準備工作

  1. 下載 charles, 官網的地址: https://www.charlesproxy.com
  2. 配置要抓包的主機和端口, Proxy > SSL Proxying Settings > SSL Proxying, 啟用 Enable SSL Proxying, 同時在 Include 當中添加 Location, 如下圖所示(這是個通配符配置, 一般狀況下, 這個這個已經能夠滿足絕大數抓包的需求了).

d7fc86fb63f757f6542b06b8693f063a.png
  1. 配置代理服務器的端口, Proxy > Proxying Settings, 設置端口(我喜歡使用8888, 當然了, 各位自己按照喜好設置):

d9434d283b8f17bb131e1ad7e12d721e.png
一般情況下, 上述配置已經滿足了大部分抓包的需求, 當然還需要更詳細的內容, 請參考其他教程內容.

Charles 在 Android 7.0(及其以上的版本) 上安裝證書方法

  1. 下載應用 VMOS, 官網地址是: http://www.vmos.cn.
注: VMOS 應用就是一臺 Android 虛擬機, 目前好像只支持 32 位系統, 大部分應用都可以使用, 如果有的應用明確需要 64位系統, 可以使用 VMOS Pro, 當然了這個 root 功能是收費的了.


2. 導出 Charles 的證書, 這個證書是抓包的時候安裝在手機上的證書. 方法有兩種:

方法一:

  • 在 Android 手機上配置代理, 主機是你安裝 Charles 的主機的 IP (注意: Android 手機需要和安裝的Charles的電腦在同一網段下), 端口號是 8888. (這個可以自行百度各種手機的配置方法.)
  • 在 Android 手機的瀏覽器上輸入網址chls.pro/ssl, 然后下載文件.
  • 將下載好的文件拷貝到電腦上, 進行如下的操作:
openssl x509 -subject_hash_old -in charles-proxy-ssl-proxying-certificate.crt
charles-proxy-ssl-proxying-certificate.crt 是拷貝的證書文件

上面輸出的結果類似于:

faf57fe3
-----BEGIN CERTIFICATE-----
MIIFMDCCBBigAwIBAgIGAXWqowQPMA0GCSqGSIb3DQEBCwUAMIGbMSwwKgYDVQQD
....
aXDrm30UE6+dWdQ3n0ePVLNcHV+ZrIqwka94M/t8HavZpm4y
-----END CERTIFICATE-----

然后將 charles-proxy-ssl-proxying-certificate.crt 文件重命名faf57fe3.0 (faf57fe3需要根據你自己生成 的結果進行調整)

方法二:

  • Charles 進入 Help > SSL Proxying > Save Charles Root Certificate, 導出 pem 格式證書.
  • 然后進行如下的操作:
openssl x509 -subject_hash_old -in charles-proxy-ssl-proxying-certificate.pem
charles-proxy-ssl-proxying-certificate.pem 是導出的證書文件

上面輸出的結果類似于:

faf57fe3
-----BEGIN CERTIFICATE-----
MIIFMDCCBBigAwIBAgIGAXWqowQPMA0GCSqGSIb3DQEBCwUAMIGbMSwwKgYDVQQD
....
aXDrm30UE6+dWdQ3n0ePVLNcHV+ZrIqwka94M/t8HavZpm4y
-----END CERTIFICATE-----

然后將 charles-proxy-ssl-proxying-certificate.pem 文件重命名faf57fe3.0(faf57fe3需要根據你自己生成 的結果進行調整)
3. 拷貝文件, 將生成好的證書文件拷貝到 /system/etc/security/cacerts/ 目錄下, 并且修改文件權限:

# adb 連接到 vmos 虛擬機
adb connect 192.168.50.100:5666# 拷貝文件
adb push faf57fe3.0 /system/etc/security/cacerts/# 修改文件權限
adb shell
cd /system/etc/security/cacerts/
chmod 644 faf57fe3.0
192.168.50.100:5666VMOS 虛擬機的 adb 連接. 在進入 VMOS app后, 進入 設置 > 其他設置 當中, 按照下圖所示進行設置, 然后重啟 VMOS app 即可生效:

32260379b899b40132842e106b6806be.png

4. 設置全局代理. 到此為止, 你已經成功了一半, 接下來就需要設置 VMOS 的全局代理地址為當前的 Charles 的代理服務器的地址. 設置操作如下:

adb connect 192.168.50.182:5666 # adb 連接到 vmos 虛擬機(如果之前已經連接過可以省略)adb shell settings put global http_proxy 192.168.50.14:8888 # 設置 vmos 的全局代理
192.168.50.14:8888 是我的 Charles 的主機IP地址, 這個需要根據自己的情況修改. 這一步很重要的, 如果沒有這一步操作, 前面的準備工作都白搭了!


5. 到處為止, 大家就可以愉快的抓包了. 要么去 VMOS 的應用商店下載應用, 要么自己把應用傳遞到 VMOS 當中. 這個大家自己去探索吧, 是非常簡單的操作.


charles 在 iphone 上安裝證書方法

  • Charles 當中點擊 Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser

b5a4fa34be47acc7e2e25bf7c23ac5dd.png
  • 點擊 iPhone 手機的 Safari 或者 Safari瀏覽器, 輸入網址 http://chls.pro/ssl, 點擊下載 charles 的證書.
  • 進入 iPhone 手機的 Settings > General > Profile(s) 或者 設置 > 通用 > 描述文件:

b88010934d83552b60aa30eb9f6ba373.png
  • 點擊 Install 或者 安裝, 安裝 chls 證書.

20a7f19f76bb362e2d3b3b7d63b68dc6.png
  • 進入 iPhone 手機的 Settings > General > About > Certificate Trust Settings 或者 設置 > 通用 > 關于本機 > 證書信任設置, 啟用已經安裝好的 Charles Proxy CA 證書.

53386181339df476a3fe7a48cddaede4.png

各位看官, 本篇文章怎么樣? 如果喜歡了, 就請點個贊吧, 關注一下, 再次感謝您的觀看 !

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457977.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457977.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457977.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle報錯:ORA-00054: 資源正忙,要求指定 NOWAIT

ORA-00054: 資源正忙, 但指定以 NOWAIT 方式獲取資源: --首先得到被鎖對象的session_idselect session_id from v$locked_object; --通過上面得到的session_id去取得v$session的sid和serial#,然后對該進程進行終止。--SELECT sid, serial#, username, o…

ARM中ROM,RAM,FLASH區別

RAM(Random Access Memory)的全名為隨機存取記憶體,它相當于PC機上的移動存儲,用來存儲和保存數據的。它在任何時候都可以讀寫,RAM通常是作為操作系統或其他正在運行程序的臨時存儲介質(可稱作系統內存&…

excel 2007 vba與宏完全剖析_Excel宏VBA小技巧系列 | 分段加合

寫在前面的話 知識產權算是一個盛產數據的行業。專利啊商標啊著作啊,都有著錄項目。我們常說的專利分析、產業導航、企業導航、產業預警、競爭情報、技術綜述、知識產權評議等等,常規操作之一就要先處理著錄項目數據,然后再進行不同角度的分…

SecureCRT:保存輸出日志的方法

處理地址: http://blog.sina.com.cn/s/blog_64c1dd210101gzgz.html 或者: http://renchen.blog.51cto.com/4531967/1195862 重點在與設定文檔的文件名稱,里面有說明。 http://renchen.blog.51cto.com/4531967/1195862轉載于:https://www.cnbl…

redhat虛擬機安裝

做過好多使用VMware workstation虛擬機搭建的系統,這是我第一次使用Virtual Box,感覺跟Vmware差不多,我的本子的系統是win7 64位。 下面演示安裝的是在VirtualBox里安裝rhel 6.4 linux 64位系統。 一、VirtualBOX 版本。 二、虛擬機的配置。…

mysql 查看表v空間自增漲_MySQL InnoDB表空間加密

從 MySQL5.7.11開始,MySQL對InnoDB支持存儲在單獨表空間中的表的數據加密 。此功能為物理表空間數據文件提供靜態加密。該加密是在引擎內部數據頁級別的加密手段,在數據頁寫入文件系統時加密,加密用的是AES算法,而其解密是在從文件…

arm之mmu原理

實驗目的:啟用MMU,映射SDRAM的地址空間,操作虛擬地址實現“點燈大法”,借此掌握MMU的使用。實驗環境及說明:恒頤S3C2410開發板H2410。H2410核心板擴展有64MB的K4S561632 SDRAM(4M*16bit*4BANK),地址范圍是0…

osal_start_timerEx(Lock_TaskID,SBP_START_DEVICE_EVT,SBP_PERIODIC_EVT_PERIOD)的理解

osal_start_timerEx(Lock_TaskID,SBP_START_DEVICE_EVT,SBP_PERIODIC_EVT_PERIOD)與osal_set_event(Music_TaskID,event)的區別是osal_start_timerEx周期性的一直推送事件周期時間由SBP_PERIODIC_EVT_PERIOD決定,而osal_set_event是只推送一次。osal_start_timerEx開…

ideaspringboot項目上傳服務器_PHP中使用 TUS 協議來實現可恢復文件上傳

曾經嘗試過用PHP上傳大文件嗎?想知道您是否可以從上次中斷的地方繼續上傳,而不會在遇到任何中斷的情況下再次重新上傳整個數據?如果您覺得這個場景很熟悉,請接著往下閱讀。文件上傳是我們幾乎所有現代Web項目中的一項很常見的任務…

無密碼登陸

server A /B以root賬戶在A上無密碼ssh到B方式一ON A:ssh-keygen -t dsa -P -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys chmod 644 ~/.ssh/authorized_keys service sshd restart ON B:ssh-keygen -t dsa -P -f ~/.ssh/id_dsa cat ~/.ssh/id_d…

嵌入式常見筆試題總結

預處理器(Preprocessor)1. 用預處理指令#define 聲明一個常數,用以表明1年中有多少秒(忽略閏年問題) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在這想看到幾件事情: 1). #define 語法的基本知識…

【轉】php利用mkdir創建多級目錄

先介紹一下 mkdir() 這個函數: mkdir($path,0777,true); 第一個參數:必須,代表要創建的多級目錄的路徑; 第二個參數:設定目錄的權限,默認是 0777,意味著最大可能的訪問權; 第三個參數…

java使用xml存儲數據_用存儲過程和 JAVA 寫報表數據源有什么弊端?

用存儲過程和 JAVA 寫報表數據源有什么弊端?跟著小編一起來一看一下吧!我們在報表開發中經常會使用存儲過程準備數據,存儲過程支持分步計算,可以實現非常復雜的計算邏輯,為報表開發帶來便利。所以,報表開發…

GIT文件的三種狀態

對于任何一個文件,在 Git 內都只有三種狀態:已提交(committed),已修改(modified)和已暫存(staged)。已提交表示該文件已經被安全地保存在本地數據庫 中了;已修…

嵌入式常見筆試題總結(2)

預處理器(Preprocessor)   1. 用預處理指令#define 聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)   #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL   我在這想看到幾件事情:   1). #…

MAC OS上JAVA1.6 升級1.7,以及?maven3.2.1配置

一、我的MAC系統 預裝的Jdk是1.6,由于需要使用eclipse MARs 2版本,故需要升級到1.7 二、下載JAVA jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 不知道為什么直接下非常慢,后來用的迅雷就超級快…

sql server 創建唯一性非聚集索引語句_數據庫專題—索引原理

深入淺出數據庫索引原理參見:https://www.cnblogs.com/aspwebchh/p/6652855.html1.為什么給表加上主鍵?1.平時創建表的時候,都會給表加上主鍵。如果沒有主鍵的表,數據會一行行的排列在磁盤上,查找一個數據需要一條條的進行對比。而…

String,StringBuffer,StringBuilder區別

String 字符串常量StringBuffer 字符串變量(線程安全)StringBuilder 字符串變量(非線程安全) 簡要的說, String 類型和 StringBuffer 類型的主要性能區別其實在于 String 是不可變的對象, 因此在每次對 String 類型進行…

oracle數據庫更新語句_20_手把手教你學Python之操作數據庫

數據庫是數據的倉庫,將大量數據按照一定的方式組織并存儲起來,方便進行管理和維護,例如快速檢索和統計等。數據庫的主要特點:以一定的方式組織、存儲數據;能為多個用戶共享;與程序彼此獨立。……數據庫管理…

第十周學習進度

第十周 所花時間(包括上課) 10小時 代碼量(行) 0行 博客量(篇) 4篇 了解到的知識點 對各組進行評價;思考并回復各組 轉載于:https://www.cnblogs.com/qwer111/p/5470819.html