前言
好早之前一直用的是Charles做抓包工具使用,自己模拟数据,前段时间很不幸电脑进水了,公司新配的Mac需要重新配置,无奈忘记怎么配置,这次就索性就记下来,当做笔记。
简单使用
1、给电脑安装证书
首先在charles的 Help选项 选择 SSL Proxyings 选项 再选择 Install Charles Root Certificate 选项
2、证书信任
信任后点击证书出现上图为已信任状态(钥匙串中找)
3、配置SSL代理
在charles的 Proxy选项选择SSL Proxy Settings
点add添加需要监视的域名,支持 *号通配符,端口一般都是443:
4、给手机设置代理
- 这个前提是需要手机和电脑处于同一个局域网内(简单的来说就是同一个wifi下);
- 获取当前的IP地址和端口号,Charles默认端口号为8888, 这个可以根据需要自行修改;
- 手机手动配置wifi代理,输入已经获取到的IP地址和端口号
以上步骤对于Android7.0以下的手机完全适用,但是对于Android7.0以上的手机获取https接口会出现unknown ,如下图:
以下会解决这个问题。
Android7.0以上unknown解决办法
给手机安装SSL证书
会出现下面,在手机浏览器中输入红色标识的地址下载SSL证书并安装
但是对于有一些机型以上方式还是不好使,比如我用的vivo x20就不行,这时候就需要在代码中添加相应代码支持了。 Charles官方文档摘要:
主要步骤
1、创建network_security_config.xml
在res文件夹下创建“xml”文件夹,在“xml”文件夹下创建network_security_config.xml
2、文件内容
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
3、清单文件中配置
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
...
</application>
</manifest>
配置完成后就可以用啦!
最后,希望此篇博客对大家有所帮助,欢迎提出问题及建议共同探讨,如有兴趣可以关注我的博客,谢谢!