第 8 章:HTTPS 解密与 MITM 抓包调试
现代网络应用普遍采用 HTTPS 加密传输。普通的网络代理只能识别客户端连接的域名(SNI),而无法查看具体的 URL 请求路径、HTTP Header 或返回的 Body 数据。通过启用 MITM(中间人解密),Maoge 能够为开发者提供强大的明文流量审查、API 模拟调试与 URL 重写能力。
一、 MITM 的工作机制与安全边界
当客户端向 https://api.example.com 发起 TLS 握手时,Maoge 作为本地受信任的根证书颁发机构(CA),为该域名动态生成一份受 Maoge CA 签署的临时证书。客户端通过验证 Maoge 根证书完成安全握手,Maoge 便能够获取明文 HTTP 报文,并在处理完重写或抓包后再与真实服务器建立真正的 TLS 加密连接。
安全边界防线:
Maoge 绝不会也不应当解密全量流量。严禁在配置中填写
hostname = *。银行、金融支付、Apple 核心系统服务通常带有严格的 SSL Pinning(证书绑定锁定),全量解密会导致这些服务直接报网络握手错误。
二、 生成与信任本地 CA 根证书
在 Maoge 侧边栏的「MITM」设置面板中,按以下步骤完成证书安装:
- 点击「生成新 CA 证书」或导入既有的 PKCS#12 (
.p12) 证书文件。 - 点击「导出公钥证书 (
.crt / .pem)」并打开 macOS 系统自带的 钥匙串访问 (Keychain Access)。 - 在钥匙串访问中,将导出的证书拖入「系统」或「登录」钥匙串中。
- 双击导入的 Maoge CA 证书,展开「信任」折叠区,将「使用此证书时」下拉框更改为 始终信任 (Always Trust)。
- 关闭窗口并输入 macOS 用户登录密码或触控 ID 确认。回到 Maoge 点击开启 MITM。
三、 [MITM] 语法与目标域名白名单
在配置文件中,通过 [MITM] 段限定需要解密的目标主机名白名单(支持通配符):
[MITM]
# 启用 MITM 解密开关
enabled = true
# 仅对开发调试目标域名或 API 启用解密
hostname = api.example.com, *.githubusercontent.com, test-service.local
# 是否跳过服务端证书有效性校验(开发自签名测试环境推荐)
skip-server-cert-verify = true
四、 配合 URL Rewrite 实现接口模拟与重定向
在成功解密 HTTPS 流量后,可以通过 [URL Rewrite] 对请求地址进行无缝拦截和重写:
[URL Rewrite]
# 将远程线上接口 302 重定向到本地开发服务器
^https?://api\.example\.com/v1/feed http://127.0.0.1:8080/mock/feed 302
# 屏蔽某些追踪链接(直接阻断或返回空)
^https?://telemetry\.example\.com/track _ reject_

AI赋能出海: 专业外贸独立站与智能解决方案提供商