鸿蒙Next系统手机使用Charles配置证书并抓包教程

鸿蒙Next系统手机使用Charles配置证书并抓包教程

准备工作

在开始配置之前,请确保你已经准备好了以下工具和环境:

  1. 硬件设备:一部搭载鸿蒙Next系统的手机(如华为Mate 60系列)和一台电脑(Windows、macOS或Linux均可)。
  2. 软件工具 :Charles Proxy抓包工具(建议使用最新版本5.0.1及以上),可从官网下载安装。
  3. 网络环境:确保手机和电脑连接到同一个局域网(可以是同一个Wi-Fi或电脑共享热点)。
  4. 开发工具:安装鸿蒙开发工具包中的hdc命令行工具,用于在电脑和手机之间传输文件和执行命令。

详细步骤

步骤一:安装并配置Charles

  1. 安装Charles:按照官方指引安装Charles到你的电脑上。安装完成后,打开Charles,你会看到如下主界面:
  1. 配置代理端口:点击菜单栏中的"Proxy" -> "Proxy Settings",在弹出的窗口中设置代理端口(默认是8888),并勾选"Enable transparent HTTP proxying"选项。

  2. 配置SSL代理:点击"Proxy" -> "SSL Proxy Settings",在"Include"栏中添加"*:443",这样Charles就能捕获所有HTTPS流量了。

步骤二:导出Charles根证书

  1. 导出证书:在Charles中,点击菜单栏的"Help" -> "SSL Proxying" -> "Save Charles Root Certificate",将证书保存为PEM格式到电脑上。

  2. 通过hdc命令传输证书到手机:使用以下命令将证书发送到手机的Download目录:

bash 复制代码
hdc file send /path/to/your/charles.pem /storage/media/100/local/files/Download/charles.pem
  1. 可以找个存储服务器, 然后通过手机浏览器打开对应的地址直接进行下载

    3.1 通过vscode的live server 直接启动本地服务器是一个办法 3.2 可以通过网络其他平台, 比如 文叔叔等等

步骤三:在鸿蒙Next手机上安装证书

  1. 启动证书安装器:在电脑上执行以下命令,启动手机上的证书安装器:
bash 复制代码
hdc shell aa start -a MainAbility -b com.ohos.certmanager
  1. 安装证书:在手机上,按照提示选择"从存储设备安装",找到并选择刚才传输的charles.pem证书文件。安装过程中,系统会提示"此CA根目录证书不受信任",这是正常现象,继续安装即可。

步骤四:配置手机代理

  1. 进入WLAN设置:在手机上打开"设置" -> "WLAN",找到并长按当前连接的Wi-Fi网络,选择"修改网络"。
  1. 设置手动代理:在网络设置页面中,点击"代理",选择"手动"。输入电脑的IP地址和Charles的代理端口(默认8888)。

步骤五:开始抓包

  1. 启动Charles抓包:在Charles中点击工具栏上的"开始录制"按钮(红色圆点),开始捕获网络请求。

  2. 测试抓包:在手机上打开浏览器或其他应用,访问一个HTTPS网站。此时,Charles应该能显示捕获到的网络请求,包括请求头、响应内容等详细信息。

扩展内容:鸿蒙安全模型与抓包合规

鸿蒙Next系统采用了多层次的安全防护体系,包括应用沙箱隔离、证书链验证、权限精细化管理等机制。在进行抓包操作时,需要特别注意以下几点:

  1. 证书信任机制:鸿蒙Next默认不信任用户安装的CA证书,因此需要手动将Charles证书安装到系统的"受信任的根证书颁发机构"存储区。即使如此,部分系统应用和高安全性应用可能仍然会拒绝使用用户安装的证书。

  2. 应用网络安全配置:鸿蒙应用可以通过配置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>
  1. 隐私保护注意事项:抓包操作可能会获取到敏感的个人信息,如登录凭证、支付信息等。请确保你的抓包行为符合相关法律法规,仅对自己开发的应用或获得授权的应用进行抓包测试。

注意事项

  1. 证书格式要求:鸿蒙Next系统仅支持PEM格式的证书,不支持CRT格式。如果你的证书是CRT格式,需要先转换为PEM格式。

  2. hdc命令使用:使用hdc命令时,确保手机已开启"开发者模式"和"USB调试"功能。如果遇到"设备未连接"的错误,可以尝试重启adb服务或重新插拔USB线。

  3. 系统版本兼容性:不同版本的鸿蒙Next系统可能在证书安装和代理设置步骤上略有差异。本文档基于鸿蒙Next 5.1.0.150版本编写,如果你使用的是其他版本,可能需要适当调整步骤。

  4. 网络代理冲突:如果你的网络环境中存在其他代理服务器,可能会导致Charles抓包失败。建议在抓包期间关闭其他代理软件或配置。

常见问题排查

问题一:无法访问chls.pro/ssl下载证书

如果你在手机浏览器中访问chls.pro/ssl时无法下载证书,...

  1. 确保手机已正确配置代理,并且Charles正在运行。
  2. 在Charles中,点击"Help" -> "SSL Proxying" -> "Install Charles Root Certificate on a Mobile Device or Remote Browser",然后按照提示操作。
  3. 如果仍然无法下载,可以手动从电脑导出证书,再通过hdc命令传输到手机。

问题二:安装证书后仍无法抓取HTTPS请求

如果已经安装了Charles证书,但仍然无法抓取HTTPS请求,可能是以下原因导致:

  1. 应用使用了证书固定(Certificate Pinning):部分应用会固定服务器证书,拒绝使用用户安装的CA证书。这种情况下,需要对应用进行反编译,移除证书固定逻辑,或者使用Frida等工具在运行时绕过证书验证。

  2. Charles配置错误:检查Charles的SSL Proxy Settings,确保已添加"*:443"规则,并且"Enable SSL proxying"选项已勾选。

  3. 证书未正确安装:进入手机的"设置" -> "安全" -> "加密与凭据" -> "信任的凭据",检查Charles证书是否在"用户"标签下,并且状态为"已启用"。

问题三:抓包时手机无法上网

如果配置代理后手机无法上网,可能是以下原因:

  1. 代理设置错误:检查代理服务器的IP地址和端口是否正确,确保电脑和手机在同一个局域网。

  2. 防火墙拦截:检查电脑的防火墙设置,确保Charles的端口(默认8888)没有被防火墙阻止。

  3. Charles未授权:当手机第一次连接到Charles时,电脑上会弹出授权窗口,需要点击"Allow"允许连接。如果不小心点击了"Deny",可以在Charles的"Proxy" -> "Access Control Settings"中添加手机的IP地址到允许列表。

结语

通过本文的步骤,你应该已经成功在鸿蒙Next系统手机上配置好了Charles证书并实现了HTTPS抓包。抓包技术是应用开发和调试的重要工具,但同时也需要注意遵守法律法规和隐私保护原则。

鸿蒙Next系统的安全机制在不断强化,未来可能会对抓包行为施加更多限制。作为开发者,我们需要不断学习和适应新的技术变化,同时始终将用户隐私和数据安全放在首位。

希望本文对你有所帮助!如果你在配置过程中遇到其他问题,欢迎在评论区留言讨论。


End


相关推荐
Vhen1 小时前
Vue2项目部署后更新版本提示
前端
爱笑的眼睛111 小时前
HarmonyOS DataShare数据共享机制深度解析:构建分布式应用的数据桥梁
华为·harmonyos
搞个锤子哟1 小时前
vue移动端开发长按对话复制功能
前端
AAA阿giao2 小时前
深入理解 JavaScript 的 Array.prototype.map() 方法及其经典陷阱:从原理到面试实战
前端·javascript·面试
猫林老师2 小时前
Flutter for HarmonyOS开发指南(五):性能调优与性能分析全攻略
flutter·华为·harmonyos
BlackWolfSky2 小时前
鸿蒙文件操作
macos·华为·harmonyos·鸿蒙
爱笑的眼睛112 小时前
深入理解HarmonyOS Calendar组件:高级日期选择实现与优化
华为·harmonyos
HMS Core2 小时前
【FAQ】HarmonyOS SDK 闭源开放能力 — Network Kit
华为·harmonyos
爱笑的眼睛112 小时前
HarmonyOS OCR文字识别应用开发:深度指南与分布式实践
华为·harmonyos