安卓手機已經安裝burpsuite證書,但app應用軟件仍無法訪問https聯網,瀏覽器可以訪問http但https提示此證書並非來自被信任的機構
這問題應該是安卓獨有的。博主之前的模擬器訪問完全沒問題,最近突然無法訪問,用控制變量法,我改緩了burp版本、java版本、重啟電腦、用模擬器+手機都試了一遍,搞了一天,無果
最后查了burp官網發現這么一句話:
Note: Android Nougat no longer trusts user or admin supplied CA certificates. We recommend that you use an older version of Android for your testing. If you must use Android Nougat then you will need to install a trusted CA at the Android OS level on a rooted device or emulator.
Android Nougat就是安卓7,夜神模擬器好像就是安卓7,所以最簡單的辦法是選擇安卓5啟動模擬器
如果要用安卓7及以上版本,那么用戶在手機里安裝證書是不被認可的,需要安裝系統證書,需要運行adb root
參考 一篇博客 安裝系統證書步驟如下:
-
導出burp證書,選Certificate in DER format即可
-
使用openssl將der格式轉為pem格式,方便安卓識別,博主懶得裝openssl,直接傳到linux上操作
# 轉為pem格式
openssl x509 -inform DER -in cacert.der -out cacert.pem
# 重命名為<hash值>.0
mv cacert.pem `openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1`'.0'
- 把<hash值>.0文件拿回Windows准備在adb中操作,需要root
- 模擬器請打開
磁盤可讀寫
或system可寫入
adb root
:: remount將/system 置於可寫入的模式,root情況下可使用
:: 沒有remount就adb shell中使用mount命令,或使用app:MT管理器
adb remount
adb push <hash值>.0 /sdcard/
adb shell
mv /sdcard/<hash值>.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/<hash值>.0
結束,重啟手機即可在系統部分下看到burp的證書