安裝中間人憑證¶
本章節介紹如何在您的 Android 系統內安裝系統層級的根憑證,具備全 Android 版本的相容性。您可以使用本章的介面搭配 設定代理 介面來實現中間人封包攔截,當然,您也可以選擇使用我們封裝好的 startmitm.py,我們在此只是為了向您介紹這個功能的使用方式。
準備工作¶
請確保您已經準備好 Fiddler 或 mitmproxy 提供的憑證。對於 mitmproxy,您應該使用的憑證是 mitmproxy-ca-cert.pem。而對於 Fiddler,則可能是 crt 格式,您應該可以在 Fiddler 中匯出這個檔案,直接將該檔案路徑作為參數提供即可,無需關心任何檔名或格式轉換問題。為了避免浪費不必要的時間,在這裡推薦使用 mitmproxy,如果您使用的是 Charles 等,我們無法確保您可以一次性完成設定,因為此類應用程式配置項目較為複雜且您可能需要理解各種代理類型才能正確配置 HTTPS 中間人,如果您一定要使用,建議使用 Charles 的 SOCKS5 作為代理協議。
安裝根憑證¶
安裝中間人系統根憑證,cert_path 為憑證檔案的路徑,一次安裝永久存在,重啟也無需重複安裝。
d.install_ca_certificate(cert_path)
提示
憑證安裝卸載介面是通用的,您可以用它安裝任何應用程式要求您安裝的憑證,可以用其安裝 Fiddler/Charles 提供的憑證,只需要提供檔案路徑即可。
卸載根憑證¶
移除安裝在裝置上的自訂根憑證,不建議您頻繁安裝和卸載。
d.uninstall_ca_certificate(cert_path)
完整的用於安裝 mitmproxy 中間人系統憑證的程式碼如下
import os
# 拼接 mitmproxy-ca-cert.pem 檔案的路徑
HOME = os.path.expanduser("~")
cert_path = os.path.join(HOME, ".mitmproxy", "mitmproxy-ca-cert.pem")
# 以 mitmproxy 為例,使用如下程式碼安裝中間人憑證
d.install_ca_certificate(cert_path)
# 使用如下程式碼卸載憑證
d.uninstall_ca_certificate(cert_path)