鸿蒙Next系统手机使用Charles配置证书并抓包教程
准备工作
在开始配置之前,请确保你已经准备好了以下工具和环境:
- 硬件设备:一部搭载鸿蒙Next系统的手机(如华为Mate 60系列)和一台电脑(Windows、macOS或Linux均可)。
- 软件工具 :Charles Proxy抓包工具(建议使用最新版本5.0.1及以上),可从官网下载安装。
- 网络环境:确保手机和电脑连接到同一个局域网(可以是同一个Wi-Fi或电脑共享热点)。
- 开发工具:安装鸿蒙开发工具包中的hdc命令行工具,用于在电脑和手机之间传输文件和执行命令。
详细步骤
步骤一:安装并配置Charles
- 安装Charles:按照官方指引安装Charles到你的电脑上。安装完成后,打开Charles,你会看到如下主界面:

-
配置代理端口:点击菜单栏中的"Proxy" -> "Proxy Settings",在弹出的窗口中设置代理端口(默认是8888),并勾选"Enable transparent HTTP proxying"选项。
-
配置SSL代理:点击"Proxy" -> "SSL Proxy Settings",在"Include"栏中添加"*:443",这样Charles就能捕获所有HTTPS流量了。
步骤二:导出Charles根证书
-
导出证书:在Charles中,点击菜单栏的"Help" -> "SSL Proxying" -> "Save Charles Root Certificate",将证书保存为PEM格式到电脑上。
-
通过hdc命令传输证书到手机:使用以下命令将证书发送到手机的Download目录:
bash
hdc file send /path/to/your/charles.pem /storage/media/100/local/files/Download/charles.pem
-
可以找个存储服务器, 然后通过手机浏览器打开对应的地址直接进行下载
3.1 通过vscode的live server 直接启动本地服务器是一个办法 3.2 可以通过网络其他平台, 比如 文叔叔等等
步骤三:在鸿蒙Next手机上安装证书
- 启动证书安装器:在电脑上执行以下命令,启动手机上的证书安装器:
bash
hdc shell aa start -a MainAbility -b com.ohos.certmanager
- 安装证书:在手机上,按照提示选择"从存储设备安装",找到并选择刚才传输的charles.pem证书文件。安装过程中,系统会提示"此CA根目录证书不受信任",这是正常现象,继续安装即可。

步骤四:配置手机代理
- 进入WLAN设置:在手机上打开"设置" -> "WLAN",找到并长按当前连接的Wi-Fi网络,选择"修改网络"。

- 设置手动代理:在网络设置页面中,点击"代理",选择"手动"。输入电脑的IP地址和Charles的代理端口(默认8888)。

步骤五:开始抓包
-
启动Charles抓包:在Charles中点击工具栏上的"开始录制"按钮(红色圆点),开始捕获网络请求。
-
测试抓包:在手机上打开浏览器或其他应用,访问一个HTTPS网站。此时,Charles应该能显示捕获到的网络请求,包括请求头、响应内容等详细信息。

扩展内容:鸿蒙安全模型与抓包合规
鸿蒙Next系统采用了多层次的安全防护体系,包括应用沙箱隔离、证书链验证、权限精细化管理等机制。在进行抓包操作时,需要特别注意以下几点:
-
证书信任机制:鸿蒙Next默认不信任用户安装的CA证书,因此需要手动将Charles证书安装到系统的"受信任的根证书颁发机构"存储区。即使如此,部分系统应用和高安全性应用可能仍然会拒绝使用用户安装的证书。
-
应用网络安全配置:鸿蒙应用可以通过配置network_security_config.xml文件来限制对用户证书的信任。如果遇到无法抓包的应用,可能需要修改其网络安全配置,添加对用户证书的信任:
xml
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
- 隐私保护注意事项:抓包操作可能会获取到敏感的个人信息,如登录凭证、支付信息等。请确保你的抓包行为符合相关法律法规,仅对自己开发的应用或获得授权的应用进行抓包测试。
注意事项
-
证书格式要求:鸿蒙Next系统仅支持PEM格式的证书,不支持CRT格式。如果你的证书是CRT格式,需要先转换为PEM格式。
-
hdc命令使用:使用hdc命令时,确保手机已开启"开发者模式"和"USB调试"功能。如果遇到"设备未连接"的错误,可以尝试重启adb服务或重新插拔USB线。
-
系统版本兼容性:不同版本的鸿蒙Next系统可能在证书安装和代理设置步骤上略有差异。本文档基于鸿蒙Next 5.1.0.150版本编写,如果你使用的是其他版本,可能需要适当调整步骤。
-
网络代理冲突:如果你的网络环境中存在其他代理服务器,可能会导致Charles抓包失败。建议在抓包期间关闭其他代理软件或配置。
常见问题排查
问题一:无法访问chls.pro/ssl下载证书
如果你在手机浏览器中访问chls.pro/ssl时无法下载证书,...
- 确保手机已正确配置代理,并且Charles正在运行。
- 在Charles中,点击"Help" -> "SSL Proxying" -> "Install Charles Root Certificate on a Mobile Device or Remote Browser",然后按照提示操作。
- 如果仍然无法下载,可以手动从电脑导出证书,再通过hdc命令传输到手机。
问题二:安装证书后仍无法抓取HTTPS请求
如果已经安装了Charles证书,但仍然无法抓取HTTPS请求,可能是以下原因导致:
-
应用使用了证书固定(Certificate Pinning):部分应用会固定服务器证书,拒绝使用用户安装的CA证书。这种情况下,需要对应用进行反编译,移除证书固定逻辑,或者使用Frida等工具在运行时绕过证书验证。
-
Charles配置错误:检查Charles的SSL Proxy Settings,确保已添加"*:443"规则,并且"Enable SSL proxying"选项已勾选。
-
证书未正确安装:进入手机的"设置" -> "安全" -> "加密与凭据" -> "信任的凭据",检查Charles证书是否在"用户"标签下,并且状态为"已启用"。
问题三:抓包时手机无法上网
如果配置代理后手机无法上网,可能是以下原因:
-
代理设置错误:检查代理服务器的IP地址和端口是否正确,确保电脑和手机在同一个局域网。
-
防火墙拦截:检查电脑的防火墙设置,确保Charles的端口(默认8888)没有被防火墙阻止。
-
Charles未授权:当手机第一次连接到Charles时,电脑上会弹出授权窗口,需要点击"Allow"允许连接。如果不小心点击了"Deny",可以在Charles的"Proxy" -> "Access Control Settings"中添加手机的IP地址到允许列表。
结语
通过本文的步骤,你应该已经成功在鸿蒙Next系统手机上配置好了Charles证书并实现了HTTPS抓包。抓包技术是应用开发和调试的重要工具,但同时也需要注意遵守法律法规和隐私保护原则。
鸿蒙Next系统的安全机制在不断强化,未来可能会对抓包行为施加更多限制。作为开发者,我们需要不断学习和适应新的技术变化,同时始终将用户隐私和数据安全放在首位。
希望本文对你有所帮助!如果你在配置过程中遇到其他问题,欢迎在评论区留言讨论。
End