添加mitmproxy證書為安卓系統證書(模擬器亦可)


 Android證書分為“用戶證書”和“系統證書”兩種,在設置->安全->"查看安全證書"列表中,可以看到“系統”和“用戶”兩個列表。用戶通過瀏覽器下載安裝或者通過WLAN高級設置安裝的證書均為用戶證書。

安裝為系統證書有什么好處呢?

(1)安裝用戶證書必須要設置開機密碼,而且設置后就不能取消,除非先刪掉所有的用戶證書。如果安裝為系統證書就不需要設置開機密碼,自動化操作時更方便。

(2)Android 7以上版本APP默認不信任用戶證書,只信任系統證書,安裝為用戶證書,對APP的HTTPS抓包會失敗。安裝為全局證書才能被所有APP信任,方可進行HTTPS抓包。

默認情況下,針對 Android 7.0+ (API level 24+) 的應用不再信任用戶或管理員添加的CA證書來進行安全連接。(之前我們其實是將安全證書安裝到安卓手機上作為用戶信任安全證書,新版本如果APP開啟了設置我們的代理請求會被認為是不安全的。)
Android的系統證書的存儲位置是/system/etc/security/cacerts,證書文件必須是PEM格式,而且文件命名必須符合系統證書規范。
1、准備一台已經  root的手機
2、准備 mitmproxy證書文件
3、確認移動設備(模擬器)已經連接
adb devices -l #顯示所有已連接的設備詳細信息

 

 如果沒有設備顯示,便手動連接(夜神模擬器)

adb connect 127.0.0.1:62001 #默認端口

再次查看連接確認

 

 

Windows 或者Linux 在mitmdump第一次運行會在用戶目錄生成對應的文件。
復制代碼
#PEM或者DER格式均可。
#如果是PEM格式的:
 openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem -noout
c8750f0d
# 如果是DER格式的:
 openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer -noout
c8750f0d
#重命名
cp mitmproxy-ca-cert.pem c8750f0d.0
#傳入手機
adb push c8750f0d.0 /sdcard/c8750f0d.0
復制代碼
#獲取手機的root權限
adb shell
su
#掛載系統目錄為可寫
mount -o rw,remount /   #或者/system

 

mv /sdcard/c8750f0d.0 /system/etc/security/cacerts
#修改證書權限
chmod 644 /system/etc/security/cacerts/c8750f0d.0

 

你可能會報錯:'/dev/block/dm-0' is read-only

在次確認你是root(#)狀態下后,你可以執行以下命令來你查看的android的構建類型,在 adb shell 輸入

cat /system/build.prop | grep build.type

如若return的信息顯示你是開發版,繼續往后看。

對於調試版本,用戶必須首先 disable-verity 。

隨后:

adb root
adb disable-verity adb reboot adb remount adb shell mount -o rw,remount /system

 

 

至此,證書安裝成功!

現在我們可以在系統證書里面找到mitmproxy證書了。手機連接mitmproxy代理進行抓包時系統也不會報”該證書來自非可信的授權中心“的錯誤了。

如果升級系統的話,可能需要重新拷入證書到系統目錄。可以考慮將該證書做成magisk模塊,這樣升級系統后也無需重新拷入。

 

 

 

 

轉該於:https://www.cnblogs.com/oboth-zl/p/13818981.html


免責聲明!

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



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