Android如何用Charles对App的https请求进行抓包(Window)

本篇文章主要讲解利用Charles对Android设备上的APP进行抓包。
环境:

  1. Window系统
  2. Android终端设备
  3. Charles 4.2.8

Charles下载地址,提取码:0es6

下载完成后解压,点击【charles-proxy-4.2.8-win64.msi】安装,安装完成后,把charles.jar复制到安装目录的lib下,覆盖粘贴就可以,破解版(如果本地有安装过,打开提示:A suitable Java installation was not found,先卸载旧版本,再重新装试试)。

第一步,先安装证书,打开Charles,Help->SSL Proxying -> install Charles Root Certificate(如下图),安装电脑上的证书;
Android如何用Charles对App的https请求进行抓包(Window)_第1张图片

第二步:安装Android Device上的证书,Help->SSL Proxying -> install Charles Root Certificate on a Mobile Device or Remote Browser,会弹出如下弹框:
Android如何用Charles对App的https请求进行抓包(Window)_第2张图片
上图的意思是,先设置手机上的代理为172.168.30.39,端口号为8888。以小米手机为例,设置->WLAN->你链接的WLAN(点击那个箭号进入详情页,如下图):
Android如何用Charles对App的https请求进行抓包(Window)_第3张图片
代理改为手动,输入代理IP172.168.30.39,端口号为8888(不同手机设置可能不一样,不懂的请自行百度)。
设置完后,就需要下载证书到手机上了,打开浏览器,输入:chls.pro/ssl,就会自己下载到手机上了,这里需要记住下载完成保存到本地的路径。
下载完成后,就需要安装证书了,这里还是以小米手机为例,其余机型,不懂的请自行百度。
设置 -> 更多设置 -> 系统安全 ->加密与凭据 -> 从SD卡安装,选择之前保存证书的路径。

第三步:安装设备上的证书完成后,需要设置Proxy,如下:
Android如何用Charles对App的https请求进行抓包(Window)_第4张图片
打开设置的对话框:
Android如何用Charles对App的https请求进行抓包(Window)_第5张图片
点击Add,新增一个443的代理,点击OK。

安装配置完成,现在就可以取试试抓https的包了。。。

2019-08-27(发现百度打不开了,提示:您的连接不是私密连接。。。)
查了一下资料是因为证书不被信任的问题,问题是出在第一步,电脑安装证书的问题,弹出安装界面,一直点击下一步(选项全是默认的)。
解决方案:重新安装,手动选择安装证书的位置,如下图:
Android如何用Charles对App的https请求进行抓包(Window)_第6张图片
安装完后,重启浏览器,就可以访问百度页面了。。。

2020-05-14(APP无法连接网络,报:java.security.cert.CertPathValidatorException: Trust anchor for certification path not found 这个异常),解决方式:
添加如下文件 res/xml/network_security_config.xml 到你的代码里面:

然后在你 app的 manifest 文件中引入上面的文件, 如下所示:



APP重新运行,可以联网了。。。

你可能感兴趣的:(Android如何用Charles对App的https请求进行抓包(Window))