charles4.0 https证书问题

前言:后端坑我千百遍,是你没遇到客户端~ (不会抓包的前端不是好前端😄😄)

安装charles

安装环境 macOS 10.12.5
下载地址 在这里下载一个charles最新版4.1.4, 安装后先打开Charles一次
然后下载对应的破解文件版本(破解文件也有版本要求的) charles.jar。
替换掉原文件夹里的charles.jar
Mac: /Applications/Charles.app/Contents/Java/charles.jar
Windows: C:\Program Files\Charles\lib\charles.jar

证书问题

mac上

拦截https要在你的mac下载证书
mac下载证书很简单,打开安装好的charles, 点击help-> SSL Proxying -> install Charles Root Certificate,

会去到系统证书那边,信任这个证书就好。

相应的移动端上

1.Mac 上启动 Charles,在同一个局域网内,把 iOS 设备的代理设置到 Mac机的 Charles 代理端口上。
假定 Mac 机 IP 为192.168.1.10,Charles 的默认端口号为 8888,则设置到192.168.1.10:8888。
2.在对应设备下载charles证书,设备访问这个url就会自动下载对应的证书
http://www.charlesproxy.com/getssl/
如果想看对应的信息就访问这个
https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
实践证明在ios需要三个证书,如下图

安卓只需要一个就够了

开始拦截

按照上面步骤按照完必要的东西后,就开始配置相关的信息啦

mac 上

打开charles 在相应的https上点击SSL Proxying Enable
,如下图

相应的移动端上

移动端就跟普通http请求拦截一样配置就好啦,在Wi-Fi上配置

看到效果

配置完这些后你就会看到你想要的效果啦!,喜大普奔~

发放福利

https拦截很重要,但是拦截代理也不容小视哦,打开charles tools-> Map Remote
配置相应的url
from 是来着xxx, to 是你要的地址。 支持正则表达,支持127.0.0.1

图表示把https://page.yy.com/fr_qixi_17_mob/xxx.html代理到你本机ip地址
http://172.xx.xx.xx:3000/xxx.html

小tips

如果你在的webview环境上,它不支持console,也不支持alert, 也不支持点击,也不支持vconsole js怎么办?
不怕,姐姐教你一个超级简单的方案

1
2
3
4
5
6
7
try{
...
}catch (err) {
(new Image()).src = `http://errors.net/log.php?msg=${err}`;

}

这样就会在捕获到err后发出一个http请求,你观察请求携带的err就能排查err信息啦

最后

我这么认真贴了这么多图,是不是要支持下😄,留个好评呗~ 欢迎错误指正!!