踩坑无数后的最全的charles抓包app安装教程

一、安装:

1、建议安装使用最新版,官方下载地址 https://www.charlesproxy.com/download
2、安装完成之后,需要破解:
破解方法

  1. 打开破解地址:https://www.zzzmode.com/mytools/charles/
  2. 输入RegisterName(此名称随意,用于显示 Registered to xxx),点击生成计算出注册码,打开Charles输入注册码即可

二、配置环境

开启Charles http代理

  1. 设置Charles代理。如果只是抓取手机端APP网络请求,可以将此前设置的电脑代理勾去掉(每次启动Charles都是默认开启的)

  2. 激活http代理功能。进入Proxy->Proxy Setting,设置http proxy代理端口:8888(一般默认设置为这个)

设置SSL代理:
Proxy–> SSL Proxying Setting–> Enable SSL Proxying -->Add。https访问的端口号都是443。在弹出的表单中Host填写域名,Port填443,*表示所有域名‘

电脑防火墙设置:

设置允许Charles通过防火墙。

三、Android 7.0 之后抓取HTTPS数据出现unknown 和证书无效的解决方案

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

Client SSL handshake failed: An unknown issue occurred processing the
certificate (certificate_unknown) 原因: Android7.0 之后默认不信任用户添加到系统的CA证书

解决办法:
1、将抓包软件的证书安装成系统证书(手机需要ROOT)
系统证书目录:/system/etc/security/cacerts/
其中的每个证书的命名规则如下:

<Certificate_Hash>.<Number>

文件名是一个Hash值,而后缀是一个数字。
文件名可以用下面的命令计算出来:

openssl x509 -subject_hash_old -in <Certificate_File>

后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的Hash值是一样的话,那么一个证书的后缀名数字可以设置成0,而另一个证书的后缀名数字可以设置成1

2、下载Charles证书到电脑上,文件格式为.pem文件

Linux系统下可以之间使用openssl 命令
window系统需要使用工具才能执行openssl命令

下载之后之间解压,然后配置一下环境变量path就可以用了。
1、打开cmd命令行
输入命令: openssl x509 -subject_hash_old -in C:\Users\u\Desktop.pem

执行完之后得到证书的Hash

然后把证书名由Charles.pem更换为c2237ceb.0

把证书安装到手机系统证书目录下(手机需要root)
执行以下adb命令:

adb root
adb disable-verity
adb reboot
adb root
adb remount
adb push C:\Users\u\Desktop\c2237ceb.0   /system/etc/security/cacerts/ 

打开手机设置——密码与安全——系统安全——加密与凭据——信任的凭据——系统栏

滑到最底下,倒数第二个,有charles证书,代表证书安装至系统证书成功。

四、手机端Wifi添加代理

手机与电脑连接同一网段的wifi,进入wifi连接设置,设置代理为手动,填写主机名与端口号,
主机名可以打开charles,获取IP地址,端口号为第二步中设置的端口号。
在这里插入图片描述
在这里插入图片描述
完成以上操作后,charles就可正常获取到手机app的所有接口了


版权声明:本文为weixin_42962924原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>