安卓證書安裝為系統證書(模擬器版)


背景/遇到的問題:(HTTPS第三方窗口無法抓包)
因項目要求,原HTTP鏈接換成了加密鏈接HTTPS;導致安卓手機的第三方瀏覽器/原生嵌套窗口Webveiw無法正常抓包HTTPS的內容;

 

問題分析:(請教了大佬)

使用的環境:WINDOWS10、EMUI 11、Charles 4.5.6、APP
排查問題的思路是先從能讀到證書的方法來驗證;
  1. 在電腦瀏覽器請求對應的HTTPS鏈接,查看抓包工具能否正常抓到;如果不能,電腦端證書就有問題,重裝下再試試;
  2. 電腦端正常的情況下,在手機上自帶瀏覽器里請求對應的HTTPS鏈接;查看抓包工具能否正常抓到;如果不能,手機端證書就有問題,重裝下再試試;
  3. 如果電腦與手機自帶瀏覽器都能正常抓到,APP的還是抓不到。排查一下Webview窗口是否為同一個;
排查方法:把手機自帶瀏覽器請求的信息與APP請求抓包不到的信息對比一下;
如果不是同一瀏覽器,那基本就是因為第三方瀏覽器Webview(部分)無法讀取到用戶證書導致的;
百度等找了下不能抓包的原因:

 

 到這個時候,基本可以確定無法抓包是因為非本瀏覽器窗口無法讀到用戶證書導致的;

網上找到的解決辦法:

 

 解決思路:通過模擬器ROOT后安裝證書到系統證書的方法來解決讀不到的問題;

 
解決方法:
環境:Windows10、安卓模擬器(打開root)、adb、保存的pem證書;
操作步驟:
1、打開模擬器,確保已連接
2、打開CMD(接下來基本在CMD里操作了)
3、查看連接狀態:adb devices
4、判斷是否有ROOT權限:adb root
5、重啟:adb reboot (未重啟的可手動重啟模擬器)
6、將/system部分置於可寫入的模式:adb remount
7、查看pem證書信息:openssl x509 -subject_hash_old -in 123.pem (123.pem指具體文件的路徑和名稱)
8、把結果里的名稱復制出來,再復制一份pem文件;更名為:hash結果里的名稱.0 (如:ab6544ad.0)
9、安裝證書:adb push ab6544ad.0 /system/etc/security/cacerts/ (就是把文件復制到對應的證書目錄下)
10、進入模擬器里查看系統證書

部分操作截圖:
查看模擬器連接狀態

 

 查看root狀態

將/system部分置於可寫入的模式
0
查看pem證書信息
0
更改文件名稱(例)
0
傳入模擬器系統文件夾
0
查看模擬器系統證書結果
完成這些基本就可以看到之前APP請求不能看HTTPS傳參的了;
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM