httpCanary 中文文档 下载 App

证书冲突与安装问题:常见安装报错

证书安装流程回顾

正常情况下,证书安装是三步:

  1. 启动抓包 → 系统弹窗要装证书
  2. 点安装 → 输入锁屏密码验证
  3. 命名证书 → 完成

但现实中经常遇到各种异常。

问题一:点安装没反应

现象:弹出证书安装提示后点「安装」按钮,但什么都没发生——要么闪退,要么卡住。

可能原因与解决:

问题二:已经装了证书但还是提示要装

现象:每次启动抓包都弹出证书安装提示,明明上次已经装过了。

原因:证书被系统删除了。部分系统在以下场景会自动清理用户证书:

解决:重新安装证书,同时检查是否有安全软件在清理。

问题三:证书安装后系统里找不到

现象:走完了安装流程,但去系统「受信任的凭据 → 用户」里看,证书列表是空的。

可能原因:

问题四:导出的证书文件打不开

现象:在 httpCanary 里导出了根证书,但用文件管理器打开文件时提示无法识别。

原因:

PEM 和 DER 转换

# DER 转 PEM
openssl x509 -inform DER -in cert.der -out cert.pem

# PEM 转 DER
openssl x509 -outform DER -in cert.pem -out cert.der

问题五:系统证书安装失败(需要 Root)

现象:用 Root 管理器把证书复制到 /system/etc/security/cacerts/ 后,系统不认。

检查清单:

检查项正确值
文件权限644(rw-r--r--)
文件所有者root:root
文件格式PEM 格式(Base64 编码,以 -----BEGIN 开头)
文件名必须是 <hash>.0 格式(hash 值需要用 openssl 计算)

正确的 hash 计算

# 计算证书 hash
openssl x509 -inform PEM -subject_hash_old -in HttpCanary.pem | head -1
# 输出类似 "ed6f0215",文件名应该是 ed6f0215.0

adb 推送证书的完整命令

# 1. 先在 httpCanary 里导出证书并命名为 HttpCanary.pem

# 2. 计算 hash
openssl x509 -inform PEM -subject_hash_old -in HttpCanary.pem | head -1
# 假设输出是 ed6f0215

# 3. 重命名
cp HttpCanary.pem ed6f0215.0

# 4. adb push(设备需要 Root)
adb root
adb remount
adb push ed6f0215.0 /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/ed6f0215.0
adb reboot

问题六:HTTPS 证书提示不安全

现象:浏览器或 App 弹出「连接不安全」「证书不受信任」等提示。

原因:客户端(浏览器/App)不信任 httpCanary 的 CA 证书。

检查:

  1. 证书是否已正确安装到用户证书区
  2. Android 版本是否 ≥ 7.0(需要系统证书)
  3. 是否是 SSL Pinning(只有特定 App 提示,浏览器正常)

证书问题速查

现象大概率原因解决路径
点安装没反应没设锁屏密码 / 存储权限设密码 / 清权限缓存
反复要安装证书被安全软件清理排除安全清理
找不到证书ROM 隐藏 / 证书损坏重置证书再装
HTTPS 还是乱码Android 7+ 要系统证书 / SSL Pinning升系统证书 / 绕 Pinning
导出文件打不开格式/后缀问题改后缀 / 用 openssl 转换
系统目录不认权限/文件名/格式不对按 checklist 逐查