安装
官网下载
https://www.charlesproxy.com/latest-release/download.do
使用介绍
上面链接看一至三即可
初步代理配置
如何获取代理服务器IP和手机端IP
代理服务器IP
点击help,选中ssl 代理,点击在移动设备或远程浏览器上安装Charles root 证书
弹出弹框
手机端IP
具体步骤
下载好charles后,接下来步骤点击下面这个链接,跟着"3.Charles代理"至"4.1 Web 抓取HTTPS协议"的步骤走,其中3.2步骤Access Control Settings添加手机端IP
注意在4.1(2)步,的时候
这里port改为*
关于下载证书
为什么下载charles的ssl证书
会显示<unknown>
默认情况下,charles不能解析https协议的接口,里面的请求和响应数据都是乱码格式,所以我们需要下载ssl证书,来获取里面的数据
完美步骤
打开手机,找到设置,连接同一局域下的网络,找到代理,选择手动,输入主机名和端口号,保存
手机浏览器访问网页,输入chls.pro/ssl,出现证书安装页面,点击下载
下载完成后找到设置在安装证书里面进行证书的安
Charles会弹出弹框
最后在手机上进行点击,就可以在Charles进行抓包
主要问题:手机端http://chls.pro/ssl无法点开
常见无效解决方案
尝试一:
安卓手机chls.pro/ssl无法下载(使用charles)
这个解决方案就是让你检查网络,或者重做上面的步骤,尤其是在Proxy--Access Control Settings中添加:0.0.0.0/0然后重启手机,很多文章都这么指导,但并不能解决问题
尝试二:
ios 配置了代理且使用 chls.pro/ssl 下载不了证书,无法弹出下载证书的提示
这个解决方案就是让你换个下载证书的网站,证书网址:https://www.charlesproxy.com/assets/legacy-ssl/charles.crt
但是下载的证书安装后没有用
尝试三:
charles问题,chls.pro/ssl 证书无法在小米手机下载 ?(最详细的解决方案,其他手机也可以适用)
这个解决方案有点意思,但是还是没用。它是让你在电脑上打开http://chls.pro/ssl下载.pem文件,把.pem改成.ctr文件,修改后缀名传到手机上(用数据线连接手机,右键该文件,选择"发送到";手机这边:设置,搜索"证书",点击CA证书,点击左栏xiaomi 12,找到crt证书),但是chls.pro/ssl这个网站电脑手机都打开不了
有效解决方案
前提:需要一个有root权限的手机(往system目录导入文件),手机可以直接刷root的包
下载证书或者导出证书
在全英文路径中,新建一个名叫charles的文件夹
打开charles->Help->SSL Proxying->Save Charles Root Certificate...,将证书保存成pem的格式
选择刚刚创建的charles文件夹,然后同路径下会出现一个charles.pem
计算证书hash值并修改证书名称
使用下面的指令获取证书文件的hash值,图中0fd5834就是计算出来的hash值,将charels.pem修改成"hash值.0",如0fd5834.0
openssl x509 -subject_hash_old -in <charles.pem的绝对路径>
注:若"提示'openssl' 不是内部或外部命令,也不是可运行的程序",需先安装openSSL,配置环境变量
openSSL下载地址:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
配置完后需要重启电脑
将证书导入/system/etc/security/cacerts/
因为导入system目录,需要remount一下。
adb root
adb remount
adb push C:\Users\xiaomi\Downloads\charles.pem /system/etc/security/cacerts/
导入后可以在cacerts目录下找到刚刚导入的文件
注:若提示"只有阅读权限(类似描述)",则进行以下操作:
1、cmd输入cd
2、cmd 输入adb shell,然后输入su
3、cmd 输入 cd /system/etc/security, 然后输入ls -l, 可以看到cacerts目录只有读与执行权限,并没有写入的权限
4、cmd输入chmod 777 cacerts
,要求加入写权限
(若被提示Read-only file system
,需要重新挂载系统)
检查手机中是否安装证书
在输入adb shell->su指令之后,cd /system/etc/security/cacerts,然后输入ls查看手机当前证书
也可以在手机"设置-安全-更多安全设置-更多安全设置-加密与凭据-信任的凭据-系统",看看最后面是有有了新添加的证书,但是这个难翻到
备注:如果文件push不进去,可以拷贝到手机里,给文件添加一下权限(chmod 777 0fd58c34.0),然后再mv