用mac電腦開發(fā)安卓的都應(yīng)該知道青花瓷吧~(不知道的都是小菜雞,邪惡.jpg)

image.png

image.png
安裝證書
電腦端
點(diǎn)擊 Help -- SSL Proxying -- Install Charles Root Certificate

image.png
可以看到可怕的不信任紅字,系統(tǒng)默認(rèn)對(duì)Charles證書是不信任的,別慌,我們雙擊Charles證書

WechatIMG10.jpeg

WX20180806-151319@2x.png

WechatIMG11.jpeg
手機(jī)端
點(diǎn)擊 Help -- SSL Proxying -- Install Charles Root Certificate on a Mobile Device or Remote Browser

image.png
彈出提示,手機(jī)wifi網(wǎng)絡(luò)配置代理

WechatIMG13.jpeg
然后就可以在手機(jī)瀏覽器輸入 chls.pro/ssl 下載證書

image.png
證書下載下來(lái)是一個(gè) *.pem 的文件,我們需要重命名為 *.crt 文件,不然無(wú)法安裝,有的瀏覽器直接下載下來(lái)就是 *.crt 文件,看運(yùn)氣~~ 然后進(jìn)入手機(jī)設(shè)置安裝,在此以小米6手機(jī)為例,點(diǎn)擊 設(shè)置 -- 更多設(shè)置 -- 系統(tǒng)安全 -- 加密與憑據(jù) -- 從存儲(chǔ)設(shè)備安裝 找到剛才瀏覽器下載證書的路徑選擇安裝,為證書起個(gè)名字

WechatIMG14.png
點(diǎn)確定,輸入賬戶密碼完成安裝,回到Charles

image.png
可以看到https鏈接下終于不再顯示<unknown>了,而是感人的數(shù)據(jù)!

勾引.png
Android7.0以上證書無(wú)效問(wèn)題解決
Android 7.0以后系統(tǒng)默認(rèn)不信任用戶證書,我們需要把證書加入到系統(tǒng)證書里去,具體操作如下:
# 手機(jī)必須root
adb root
# 禁止分區(qū)檢測(cè)(disable-verity命令如果報(bào)找不到,就是adb版本太低了,下載最新版platform-tools)
adb disable-verity
# 重啟
adb reboot
# 以 root 權(quán)限運(yùn)行
adb root
# 重新掛載
adb remount
# 設(shè)置讀寫權(quán)限
adb shell mount -o rw,remount /system
# 獲取證書Hash值(openssl 在windows環(huán)境下要自己安裝https://slproweb.com/products/Win32OpenSSL.html,Mac自帶)
openssl x509 -subject_hash_old -in <證書>
如下運(yùn)行命令后得到Hash值為 c8cb60a2,把證書重命名為 c8cb60a2.0 即 Hash值.0

hash.png
最后
# 安裝證書到安卓系統(tǒng)證書目錄 /system/etc/security/cacerts
adb push c8cb60a2.0 /system/etc/security/cacerts