最近帮阿茂抓包,看手机上软件市场相关的请求特征,顺便又学习了下charls抓https请求的方法。mac上或者pc上比较好实现,直接允许目标域名可以通过ssl代理就可以了,
问题是在来自手机端的请求这样操作后没有生效,发现还需要额外的步骤:

允许目标域名接受ssl代理

可以直接在Structure的htts域名上右键选择enable ssl proxing,或者在Proxy菜单下的SSL Proxing Settings里把域名手动添加到允许代理的域名列表里面。

安装charls的根证书到电脑里

手机和电脑端抓包都需要这个操作,路径help > SSL Proxing > Installl Charls Root Certificate

手机端安装cert证书

和上一部操作类似,点击help > SSL Proxing > Installl Charls Root Certificate on a mobile device or a remote browser, 会提示下面的文字细信息

Configure your device to use Charles as its HTTP proxy on _proxy_ip_address:_port, then browse to chls.pro/ssl to download and install the certificate.

其实就是在已经设置代理的情况下(如安卓手动设置了代理为charls对的代理地址和端口),然后访问chls.pro/ssl, 会下载一个getssl.cert的文件, 这个就是主角了。直接点击安装会提示安装失败(我的是小米note,安卓6)。
这个时候就要手动安装证书了, 需要在安卓的系统设置里打开证书>安装>从下载位置,其他系统的操作类似,安装成功后就可以在charls里看到https相关的请求的完整内容了。ps:我在安装的时候提示我输入手机密码凭证,可是我从来没有设置过密码额,如果之前没有设置过手机锁屏之类的密码就会遇到这个问题, 解决的办法是去设置一个锁屏密码,然后再重新操作一波安装证书的过程。几个操作界面的截图如下供参考


ssl

参考链接

如何使用charles对Android Https进行抓包