說明
以下方案必須需要root權限,如不想root,也有解決方法,請跳轉我另一遍博客 android7.0以上https抓包(無需root)
給Android7及以上的手機安裝系統級證書,實現HTTPS的抓包
Android7以后,系統不再信任用戶級的證書,只信任系統級的證書,所以要抓包就需要把我們的代理程序證書安裝至Android的系統目錄中
准備
- 一台已root的手機
- Openssl
證書生成
-
1.將Filddler或者其他抓包程序的證書導出,一般為
xxx.cer或者
xxx.pem
2.使用openssl的x509指令進行cer證書轉pem證書 和 用md5方式顯示pem證書的hash值
#1. 證書轉換,已經是pem格式的證書不需要執行這一步
openssl x509 -inform DER -in xxx.cer -out cacert.pem
2. 進行MD5的hash顯示
openssl版本在1.0以上的版本的執行這一句
openssl x509 -inform PEM -subject_hash_old -in cacert.pem
openssl版本在1.0以下的版本的執行這一句
openssl x509 -inform PEM -subject_hash -in cacert.pem
3.將第二條指令輸出的類似347bacb5的值進行復制
tips: 查看openssl版本的指令openssl version
4.將pem證書重命名
使用上面復制的值(類似於347bacb5)對pem證書進行重命名
重命名為: 347bacb5.0,切記不要忘記".0"
將新證書放入手機系統證書目錄
1.手機系統目錄位置是:/system/etc/security/cacerts
2.需要拷貝至此目錄必須擁有root權限,還要解鎖system分區
3.解鎖system分區: 開機狀態下(打開發者選項,開啟USB調試,USB模式設為MTP),在adb工具文件夾下按住shift鍵右鍵打開CMD,輸入如下命令:adb root
adb disable-verity
adb reboot
4.由於adb版本問題adb disable-verity可能會沒有此命令,此時需要更新adb版本即可,下載地址如下,下載好替換即可
ADB和Fastboot for Windows
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
ADB和Fastboot for Mac
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
ADB和Fastboot for Linux
https://dl.google.com/android/repository/platform-tools-latest-linux.zip
重啟Android設備以生效
1.拷貝證書至:adb push 證書到 /system/etc/security/cacerts之后,重啟手機就可以使證書生效了
特別注意
開啟了root權限並解鎖了system區,則表示真正解鎖了所有權限,風險也如期而至,之后請謹慎下載任何非應用市場軟件!
1.關閉system解鎖:adb enable-verity,重啟生效
2.關閉后重啟后,fiddler證書則會消失,再次抓包時需要重新導入證書
--------------------------------------------------------------------------------------
部分原創鏈接: https://blog.csdn.net/djzhao627/article/details/102812783