导出客户端证书配方
📜 导出 App 的客户端证书(双向认证场景)。
前提
- ✅ Spawn 模式(
-f) - ✅ App 有存储卡读写权限
- ✅ App 配置了客户端证书
- ✅ App 触发了取私钥(做了双向认证请求)
步骤
1. 给存储权限
bash
adb shell pm grant com.app android.permission.WRITE_EXTERNAL_STORAGE2. spawn 抓包
bash
python3 r0capture.py -U -f com.app -v -p out.pcap3. 触发双向认证
操作 App 做需要客户端证书的请求(登录、金融操作等)。
4. 看 r0capture 输出
dumpClinetCertificate=>/sdcard/Download/com.app_a3F9c2D1b7.p12 pwd: r0ysue
at com.app.security.ClientCertManager.getCert(...)5. 拉取 p12
bash
adb pull /sdcard/Download/com.app_a3F9c2D1b7.p12 .6. 用 keystore-explorer 打开
- 密码:
r0ysue - 别名:
client - 查看私钥和证书内容
7. 复用证书
导入 mitmproxy/Burp 做中间人代理时,用该客户端证书与真实服务器握手:
bash
# mitmproxy 用客户端证书
mitmproxy --client-cert com.app_xxx.p12 --client-cert-password r0ysue注意
- 同一证书可能被多次取,每次导出一份独立 p12,均可用
- 不是所有 App 都有客户端证书,没配置的不会触发