Android 7.0 之后抓包 unknown 和证书无效的解决方案(无需改代码)

本文介绍了在Android 7.0及以上版本中,由于系统不信任用户添加的CA证书导致抓包失败的问题。分析了原因,并提供了两种解决方案:一是通过修改代码配置安全策略,二是将抓包软件证书安装为系统证书(需要设备ROOT权限)。详细的操作步骤包括计算证书的Hash值,改名并复制到系统证书目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全文转载自我的博客,更好的阅读体验和更多内容欢迎移步SSpiritsの秘密基地

背景

使用抓包软件(以 Charles 为例)抓取APP的 https 请求时,Android和Charles都正确安装了证书却出现抓包失败,报错:

Client SSL handshake failed: An unknown issue occurred processing the certificate (certificate_unknown)
抓包失败

原因

Android7.0 之后默认不信任用户添加到系统的CA证书:

To provide a more consistent and more secure experience across the Android ecosystem, beginning with Android Nougat, compatible devices trust only the standardized system CAs maintained in AOSP.(文档链接

也就是说对基于 SDK24 及以上的APP来说,即使你在手机上安装了抓包工具的证书也无法抓取