在Android 7.0及以上版本中,系统默认不再信任用户安装的CA证书,因此需要将自定义证书导入为系统证书。以下是详细的步骤:

导出CA证书:

从你的抓包工具(如Charles、Fiddler等)导出CA证书,通常为.cer或.pem格式。
计算证书的MD5 Hash值:

使用OpenSSL工具计算证书的MD5 Hash值,这将用于证书文件的命名。
openssl x509 -inform DER -subject_hash_old -in certificate.cer
或者如果是.pem格式的证书:

openssl x509 -inform PEM -subject_hash_old -in certificate.pem
这将输出一个哈希值,例如c8750f0d。

转换证书格式并重命名:

将证书转换为Android系统要求的格式(如果需要),并重命名为计算出的哈希值加上.0后缀。
openssl x509 -inform PEM -in certificate.pem -out <hash>.0
其中<hash>是上一步得到的哈希值。

将证书复制到系统证书目录:

确保你的设备已经Root,然后使用adb工具将证书文件复制到/system/etc/security/cacerts目录下。
adb root
adb remount
adb push <hash>.0 /system/etc/security/cacerts/
adb shell "chmod 644 /system/etc/security/cacerts/<hash>.0"
替换<hash>为你的实际哈希值。

重启设备:

完成证书的复制和权限设置后,重启设备以使更改生效。
验证证书是否被信任:

在设备的“设置”->“安全”->“信任的凭据”->“系统”中检查你的证书是否已经成功添加并被信任。
请注意,这些步骤需要你的设备已经Root,因为它们涉及到修改系统文件。如果你的设备没有Root,你可能需要考虑使用其他方法,如使用支持用户证书的网络抓包工具,或者使用模拟器进行测试。以上步骤参考了多个来源,包括CSDN博客和其他技术网站的最新文章。


融云RongCloud
82 声望1.2k 粉丝

因为专注,所以专业