安装中间人证书

本章节介绍如何在您的安卓系统内安装系统级别的根证书,具备全安卓版本的兼容性。您可以使用本章的接口配合 设置代理 接口来实现中间人抓包,当然,您也可以选择使用我们封装好的 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)