美文网首页
Charles代理调试

Charles代理调试

作者: 贺子微 | 来源:发表于2019-02-25 11:01 被阅读0次

    最近在做APP上的活动页面的调试工作,在调试的过程中遇到了一些麻烦,比如线上报bug,本地很难在浏览器上模拟真机复现,频繁改动代码,频繁上线很麻烦,于是调研了一下抓包工具,charles,一下是使用教程及遇到的一些问题和解决方法:

    一.需要的工具

    1.下载charles并安装

    2.需要一台有root权限的手机

    注意:

    小米手机自带root为不完整root,需要进行完整root(即解锁system)。方法如下:

    安装adb工具 :brew install Caskroom/cask/android-platform-tools# 没有安装homebrew的先安装homebrew

    root  :  adb devices# 测试adb是否安装成功,成功了会出现设备的hash值

               adb root

               adb disable-verity# 禁用系统验证

    二.配置http代理

    proxy -> proxy settings -> proxies

    选择监听8888端口,并勾选Enable SOCKS proxy这样也可以监听浏览器的http请求

    三.配置SSL代理

    proxy -> SSL Proxy Settings

    点add添加需要监视的域名,支持 *号通配符,端口一般都是443

    四.为手机配置http代理

    以小米手机为例

    设置 -> wlan -> 选择一个网络并链接 -> 点击此网络的详情(右边的箭头icon)-> 设置代理为手动 -> 主机名为你的电脑ip -> 端口号8888 -> 点击右上角对号设置成功 

    这时候charles会出现是否允许此设备链接的提示,点击allow就行啦

    五.为手机安装根证书

    Charles的根证书下载网址: chls.pro/ssl 

    以小米手机为例:

    1.需要下载一个第三方浏览器

    在浏览器中输入 chls.pro/ssl 下载证书

    更改证书后缀为.crt : 

          系统工具-文件管理-手机-QQBrowser-其他(证书的文件路径),找到charles-proxy-ssl-proxying-certificate.pem,更改后缀

    设置-> wlan -> 下滑到高级设置 -> 安装证书 -> 找到刚刚修改过的文件点击并安装 -> 系统提示安装成功

    六.为电脑安装根证书

    Help -> SSL Proxy -> install charles root certicate

    进入钥匙串信任此证书

    七.访问需要代理的地址

    找到需要代理的地址,右键map local 

    设置local path,点击choose可以选择本地文件,确认

    这样就代理成功啦

    八.可能会出现的问题

    当你访问https的资源时,出现以下情况

    查看Help -> SSL Proxying 

    说明根证书没有安装成功,在Android 7.0及以上版本会出现这样的问题

    解决方法:将证书安装到系统证书中(需要root)

    系统证书的目录是:/system/etc/security/cacerts/

    每个证书的命名规则为:<Certificate_Hash>.<Number>

    Certificate_Hash表示证书文件的hash值,Number是为了防止证书文件的hash值一致而增加的后缀

    证书的hash值可以由命令计算出来,在终端输入openssl x509 -subject_hash_old -in <Certificate_File>,其中Certificate_File为证书路径,将证书重命名为hash.0放入系统证书目录,之后你就可以正常抓包了。

    相关文章

      网友评论

          本文标题:Charles代理调试

          本文链接:https://www.haomeiwen.com/subject/puuiaxtx.html