android手机安装charles证书实现https抓包

一、安装charles,然后先将charles证书到电脑端

1、下载地址

2、安装证书到电脑端:点击Help -> SSL Proxying -> Install Charles Root Certificate -> 安装证书... -> 本地计算机 -> 下一步 -> 直到完成

3、此时会启动“钥匙串访问”APP,并找到刚开安装好的证书,证书名字:Charles Proxy CA,找不到的可以搜索框搜下。

4、双击证书,点击显示简介

5、更改证书信任权限。更改为始终信任,并关闭窗口输入密码保存。

6、复制粘贴该证书到“系统”里面。此时电脑端的证书就配置完毕了

7、设置HTTPS端口抓包,点击Charles-->Proxy-->SSL Proxying Settings,出现如下弹窗,点击"Enable SSL Proxying",点击“Add”

8. 启动和设置代理端口

代理设置:Proxy -> Proxy Settings ,启用代理端口,http默认端口8888,确认勾选启用

二、MAC抓包

1.打开和关闭MAC抓包:Proxy -> MACOS Proxy ,点击一下打开,再点击一下关闭

三、android手机抓包

1.android手机安装Charles证书

2.android手机网络设置代理,代理ip和端口为上面的截图,ip:192.168.137.1,端口:8888

3.打开手机浏览器,输入地址:chls.pro/ssl 下载证书,下载完成后点击安装证书,不过安卓机目前很多网页都无法加载下载,可以将电脑的Charles证书下载下来安装在手机上,通过CA安全证书安装。

设置-->CA证书-->安装证书

4.电脑端弹框提示授权,点击授权后手机操作就能被Charles抓取到

四、请求筛选:

方法一:Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

方法二:修改Include的域名和端口。 在 Charles 的菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了;

方法三:过滤焦点域名

在目标的网络请求上右键,选中focus(此时,该域名已经被设置为一个焦点标记了),然后点击fillter后面的focused来筛选你的做的focus标记文件。

这种模式下的展现更加人性化,当你设置某个域名为焦点域名的时候,在Structure视图下,会把当前域名单独显示在上面,而其它的非焦点域名,都会在other Hosts里显示。

五、界面介绍


 

Contents是最常用的一个标签,其中上半部分是请求,下半部分是响应:请求部分中,会根据请求的内容,而分为很多项,比如如果是表单提交,还会有form的选项供你查看提交的内容(表格图形化的方式),最后一项”Raw”是未经处理的请求信息,可以理解为,raw左侧的所有项目都是对raw信息的拆分和美化,以便直观查看

Proxy

charles有强大的代理功能,总的来看大概可以分为5大块:

一、常用功能开关区

  • stop/start recording 开始/暂停记录
  • stop/start throttling 开始/暂停节流
  • enable/disable breakpoints 启用/禁用断点

【stop/start recording和recording settings】是常用的功能,这里需要注意后面的session1代表当前你将要操作的会话窗口,就是切换是否进行捕获记录。作用:限制记录大小 限制记录的历史 显示websocket的设置。下面的Imporet和export分别是资源的导入和导出,类似PSD文件一样,详细的储存,方便直接导入使用;但是仅仅是储存当前的设置。include、exclude是对特定域名进行抓包。

【stop/start throttling 、throttling settings】

暂时开始慢网速,这个手机上2G/3G/4G的速度,这个对应工具栏的小乌龟图标。一般选择多少网速就可以了,下面默认即可。 注意限速是指向下兼容,如果你网速很差,你选个100Mbps的,也是没用的。

【enable/disable breakpoints 、breakpoints settings】

有时候对于一些特殊请求在发往服务器之前想要修改一些参数,或者在服务器响应完成之后修改响应信息,此时可以使用Charles的断点功能,设置断点之后,当有网络请求的时候Charles会自动跳转到断点处,此时我们就能进行相关的修改。

二、常用功能设置区

  • recording settings 记录设置
  • throttle settings 节流设置
  • breakpoint settings 断点设置

三、反向代理和端口转发区域

  • reverse proxies 反向代理
  • port forwarding 端口转发

【反向代理】

正向代理和反向代理的区别:

正向代理:是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;在客户这一端的,替客户收发请求(类似现在正常使用的charles的功能)。

反向代理:是代理服务器,为服务器收发请求,使真实服务器对客户端不可见;在服务器这端的,替服务器收发请求,应用场景常见是就是请求分发到多台服务器的负载均衡应用。

反向代理的设置

本地端口:

本地主机上的端口创建反向代理。该字段可能会自动填充一个可用的端口。如果有另一个应用程序使用该端口,则在反向代理启动时将收到一条警告消息。

例如。给定本地端口8001,将连接到http:// localhost:8001/

远程主机和端口:

作为反向代理的目的地的远程主机的主机名或IP地址和端口。远程端口默认为80,这是HTTP的默认端口。

例如。输入www.jianshu.com的远程主机和80的远程端口,然后http:// localhost:8001 /将像是已连接到www.jianshu.com

重写重定向:

重定向远程服务器的响应将被重写以与反向代理源地址相匹配。默认为开。

远程服务器的重定向响应是完全限定的URL,即使它们在同一网站内。

如果重定向到远程服务器地址,则需要将其重写为反向代理本地地址,否则客户端将使用重定向URL到远程主机,因此不再通过反向代理连接。

保留主机头:

仅当具有特定要求时,才需要保留主机头;普通使用的时候没有必要使用的。

监听特定地址:

如果要指定本地地址以侦听反向代理,则可以启用此选项并在此处输入IP地址。如果要在同一台机器上运行多个网络服务,但在同一台机器上的不同IP地址上运行,则此功能非常有用。

禁用此选项时,反向代理将绑定到所有可用的本地地址。

【端口转发】

端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口。

端口转发能够将本地TCP或UDP端口透明地转发到远程主机和端口。 所有在端口的请求和回复可能会记录在charles。

端口转发流量记录在Charles中作为socket:// host:port / URL

如果有要使用Charles监控的非HTTP应用程序,则端口转发非常有用。

将端口创建到原始目标服务器,然后将客户端应用程序连接到本地端口; 端口转发对客户端应用程序是透明的,并能够查看Charles先前可能无法使用的流量。

例子:

可以将本地主机上的TCP端口2525转发到远程主机上的端口25, 然后当连接到localhost时:2525 Charles将透明地将流量转发到远程主机,就像直接连接一样,会看到在Charles中记录的流量为socket:// localhost:2525 /,该功能。

四、charles的代理身份配置区域

  • macOS Proxy 开启整个系统通过charles作为代理

五、常用的高级设置区

  • proxy setting 代理设置
  • ssl proxy setting ssl代理设置
  • access control setting 访问控制设置
  • extornal proxy setting 外部代理设置
  • web interface setting Web界面设置

【Proxy Settings】设置的主界面如下:

动态端口:

启用动态端口选项来监听动态端口,每次启动时会进行查询,会赋予合理的端口,这样可以避免与计算机上可能运行的其他网络服务的冲突。

透明代理:

透明代理使Charles能够访问不支持HTTP代理服务器的客户端,或者不知道他们正在使用HTTP代理服务器,例如TCP / IP连接由路由器或防火墙重定向到Charles。这里可以被手机连接。

手机连接的时候,http代理那里写选手动,并填写此时charles的本机地址和上面设置的8888端口即可。

【SSL Proxying Settings】

通过SSL代理,您的浏览器或应用程序将收到由Charles签名的证书,而不是来自远程Web服务器的原始证书。这将在您的浏览器或应用程序中触发警告,某些应用程序实际上可能会拒绝该连接。

【Access Control Settings 】

访问账户设置,连接到charles时的一些配置,控制确定谁可以使用charles。

本机是永远都可以访问的,默认的访问控制列表如果是空的,意味着除了这台电脑以外,没有任何设备可以使用charles。如果你把下面的提示开始,未经授权的设备连接时候会提示你是否允许。

【External Proxy】

外部代理设置,有时候可能需要使用网络上的代理服务器才能访问Internet,上面已经提到了,是没法连接代理服务器的同时,让charles继续抓包的,在这种情况下,需要为Charles配置外部代理。

### 使用 Charles手机安装 SSL 证书进行 HTTPS 抓包 为了能够在移动设备上成功抓取 HTTPS 流量,必须先配置并安装 Charles 的 SSL 证书。以下是具体操作指南: #### 配置 Charles 软件 确保电脑上的 Charles 已经启动,并且启用了 SSL 代理功能。进入 `Proxy` -> `SSL Proxying Settings...`, 添加需要拦截的域名或 IP 地址[^1]。 #### 下载 SSL 证书手机手机浏览器中输入运行 Charles 的计算机局域网IP地址(通常是 http://charlesproxy.com/getssl),这会自动下载适用于当前平台的根证书文件[^2]。 #### 安装 SSL 证书 对于不同版本的操作系统有不同的处理方式: - **Android 7.0 及以上** - 将下载好的 `.cer` 文件保存到本地存储。 - 进入 "设置"->"安全"->"加密与凭证", 选择 “从存储卡安装” 或者其他相应选项来导入刚才保存下来的 .cer 文件作为用户级 CA 信任凭据。 由于 Android 7.0 版本之后的安全机制变化,在未获得 root 权限的情况下,“用户证书”的位置无法满足某些应用的要求,可能导致这些应用程序忽略自定义的信任库而继续使用系统的默认设置,从而使得即使正确设置了 Charles 的 SSL 中间人攻击也无法正常工作。如果遇到这种情况,则可能还需要进一步采取措施将该证书迁移到“系统证书”。 对于已经获取 Root 权限并通过 Magisk 实现的设备来说,可以利用专门的应用程序如 AFWall+ 或 XPrivacyLua 等辅助完成迁移过程[^3]。 ```bash # 假设已知路径为 /data/misc/user/0/cacerts-added/ adb shell su -c 'mount -o rw,remount,rw /system' adb push your_certificate.cer /system/etc/security/cacerts/ ``` 请注意上述命令仅作为一个例子展示如何通过ADB指令向/system分区添加新的CA认证机构条目;实际执行前应当确认自己的环境条件以及了解潜在风险后再谨慎尝试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡均森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值