基于charles抓取https请求使用过程解析
使用charles抓https请求,这里需要设置连接端即浏览器或应用程序和charles端,才能完成ssl proxying的设置。
ssl 证书
连接端需要先安装charles证书,以下介绍了如何在不同的浏览器或应用程序上信任charles根证书
windows/internet explorer
操作:
1、charles-》help-》ssl proxying > install charles root certificate,会弹出一个窗口警告你没有信任ca root certificate
2、点击"install certificate” 按钮,加载导入证书的向导,这个证书必须要被导入到"trusted root certification authorities” 证书存储中,所以会覆盖当前自动证书存储的内容
3、证书安装完成后,需要重启ie才能生效
mozilla firefox
首选要确保firefox已连接到charles
检查的方法:
在firefox中访问链接,能够在charles中查看到firefox中的请求信息
firefox中安装chalres根证书操作如下:
1、使用firefox访问:https://chls.pro/ssl
这时firefox会弹出提示:
图1
2、点击确认安全例外,接下来会弹出如下窗口,勾选“信任由此证书颁发机构标识的网站”
图2
3、点击确定,证书即安装并信任成功
macos
操作:
1、charles-》help-》ssl proxying > install charles root certificate
2、会打开钥匙串,在钥匙串中找到“charles proxy...”,双击打开
3、在信任选项里,使用此证书时:选择“始终信任”,如下
图3
4、设置成功后关闭窗口时,会要求输入当前管理员密码来确认修改
5、重新启动safari,查看设置是否成功
ios devices
1、首先要设置手机的wifi代理到charles上
设置-》无线局域网-》当前连接的wifi,设置手动http代理
服务器为要charles所在的电脑ip,charles端口号默认是8888
图4
2、在手机端打开safari,输入: https://chls.pro/ssl,safari会提示你安装证书,安装完成如下
图5
3、如果是在ios 10.3及以上系统版本,需要在通用>关于手机>证书信任设置中找到charles证书,打开信任开关,更多信息可以参考官网文档(more information about this change in ios 10).
ps:
描述文件与设备管理在ios设置中的路径:设置-》通用-》描述文件
ios simulators
在ios模拟器上安装charles证书,首先先退出模拟器
1、打开charles,点击charles-》help-》ssl proxying > install charles root certificate in ios simulators,即会安装charles根证书到你所有的ios模拟器上
2、再次启动ios模拟器时,就可以正常使用ssl proxying
tvos
这个用的比较少,这里就不多做描述,想要了解的可以直接看官网文档
android
在android内,要信任charles ssl proxying生成的 ssl 证书,需要在你的app内添加一些配置,也就是说你只能在自己的app内使用ssl proxying。
关于网络安全配置详细的可见android官网文档
要添加的这个文件会覆盖系统默认的,能够使你的app信任已安装的ca
certificates(如 charles根证书)。可以只将这个设置应用于debug包,以便宜生产包使用默认的信任配置
1、在你的app中添加文件res/xml/network_security_config.xml:
<network-security-config> <debug-overrides> <trust-anchors> <!-- trust user added cas while debuggable only --> <certificates src="user" /> </trust-anchors> </debug-overrides> </network-security-config>
2、在manifest中添加一个reference:
<?xml version="1.0" encoding="utf-8"?> <manifest ... > <applicationandroid:networksecurityconfig="@xml/network_security_config" ... > ... </application> </manifest>
google chrome
在macos中,参考上面macos的说明。下面只适用于windows
1、charles-》help-》ssl proxying > save charles root certificate,保存为一个二进制文件(.cer后缀)到本地
2、在chrome中,打开设置页,在设置页底部点击“高级”按钮打开高级选项,点击“管理证书”按钮
3、打开信任根证书tab,点击导入步骤1中保存的证书,根据提示导入,直到导入成功
4、导入成功后,步骤1中的证书文件就可以删除了
java applications
这个用的比较少,这里就不多做描述,想要了解的可以直接看官网文档
python
这个用的比较少,这里就不多做描述,想要了解的可以直接看官网文档
抓取https请求charles设置
上面安装好charles根证书后,还需要在charles中设置ssl proxy才能正常抓取https的请求
1、点击charles-》proxy-》ssl proxying settings...
图6
2、在ssl proxying settings页中ssl proxying项中,点击add,添加一个全匹配的域名和端口号:*:443,并勾选“enable ssl proxying”,点击ok保存
图7
3、保存成功后,在上述浏览器或应用程序中即可正常抓取https请求
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。