第一步:使用charles進行https抓包
https://www.jianshu.com/p/7a88617ce80b 使用charles進行https抓包
使用Charles進行HTTPS抓包(包括安裝信任證書以及抓包 出現無法抓包unknown和證書無效解決方案)
因為微信小程序都是https的請求,所以必須要能解析https,要解析https,就要證書
最近很多同行使用第一步所說的配置之后,發現獲取的https響應數據依然是亂碼。所以,請進行第二步設置。
第二步:Android 7.0 之后抓包 unknown 和證書無效的解決方案(無需改代碼)
https://blog.csdn.net/ShadowySpirits/article/details/79756274
其中那個把用戶證書改成系統證書的命令太風騷了,我忍不住要記下來:
系統證書目錄:/system/etc/security/cacerts/
其中的每個證書的命名規則如下:
<Certificate_Hash>.<Number>
文件名是一個Hash值,而后綴是一個數字。
文件名可以用下面的命令計算出來:
openssl x509 -subject_hash_old -in <Certificate_File>
這個<Certificate_File> 就是你下載的證書的名字,你計算出hash值以后,就把原來證書的名字,就是這個<Certificate_File>,改成hash值點Number的格式(<Certificate_Hash>.<Number>的格式)
后綴名的數字是為了防止文件名沖突的,比如如果兩個證書算出的Hash值是一樣的話,那么一個證書的后綴名數字可以設置成0,而另一個證書的后綴名數字可以設置成1
操作步驟:
將抓包軟件的證書用上述命令計算出 Hash 值,將其改名並復制到系統證書目錄
此時你應該可以在 設置->安全->加密與憑據->信任的憑據 的系統標簽頁看到你新加入的證書,將其啟用即可順利抓包
到這里了,其實還有個問題,用自己的手機去root,肯定不划算,如果手邊蘋果機也不好找的話,是不是就搞不成了?
那也不是,辦法總比困難多。
這里可以選擇使用《夜神模擬器》來代替手機,話說夜神模擬器還真的是不錯,默認安裝好就已經是root了的。
你可以把證書文件下載到你電腦上,然后用上面說的那個命令計算出hash值(如果是windows,沒法使用那個openssl命令,可以裝一個Git bash,就可以用了),
然后把證書文件拖到夜神模擬器里,此時文件會在夜神的一個非系統文件夾里,但我們是需要把它搞到系統證書文件夾里去的,夜神又沒有移動文件的辦法,怎么辦呢?
活人不可能被尿憋死,不能移我就新建一個嘛,反正只要這個證書串還是那個串就好了嘛。
所以,打開拖到夜神模擬器里的那個證書文件,復制里面的證書串,然后到 系統證書文件夾(也就是/system/etc/security/cacerts/路徑下)新建一個文件,改名稱計算出來的那個hash串點Number即可。
到這里了,必須要刪除你之前用戶模式下裝的CA證書,你才能看到你剛才新建的系統CA在信任憑據列表里了。
然后你還要把charles關掉,把夜神關掉,重啟電腦,然后再把charles的 ssl proxy settings 設置為 域名* 端口*才行。不設還是會亂碼。
至此,才大工告成。