解决Charles抓取https请求显示unknow

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决Charles抓取https请求显示unknow相关的知识,希望对你有一定的参考价值。

参考技术A 1、进入Charles-》Help-》SSL Proxying-》Install Charles Root Certificate 

2、安装证书

3、信任证书

首先:移动端设备与电脑端处于同一网络

1、查看主机电脑ip和端口号

查看ip:进入Charles-->Help-->Local IP Addresses

查看端口号:进入Charles-->Proxy-->Proxy Settings

2、移动端添加代理设置

3、电脑端允许移动端连接

4、移动端,手机自带浏览器里面输入:chls.pro/ssl直接安装证书。

5、移动端,进入:设置>通用>关于本机>证书信任设置 中信任此证书

1、进入Proxy-》SSL Proxying Settings

2、勾选“Enable SSL Proxying”,并点击下方的Add

3、在弹出的“Edit Location”中,输入Host和Port都为“*”(看提示这样配置可以抓到所有https的包),然后进行添加

Charles抓包以及解决抓取HTTPS请求unknown的问题

参考技术A

在 Mac 下使用 Charles 工具进行抓包,然后抓取 HTTPS 请求时,出现 unknown,无法解析的情况如何处理呢?

请继续往下看,将会详细介绍一下整个过程...

过于简单,省略一万字...

包括电脑端和手机端,这也是抓取 HTTPS 请求的关键所在。

1. 电脑端

打开 Charles,然后在菜单栏选择 Help → SSL Proxying → Install Charles Root Certificate ,将证书安装至电脑,并打开 钥匙串访问

证书安装后,默认是 不被信任 的,所以我们需要将其设置为信任。

钥匙串 中找到该证书 Charles Proxy CA ,并设置为 始终信任 ,然后保存。

这样电脑端证书就安装完成了。

2. 手机端

同样在菜单栏选择 Help → SSL Proxying → Install Charles Root Certificate on a Mobile Device or Remote Browser ,将会有以下提示。

在手机打开: 设置 → Wi-Fi → 打开所连 WiFi → 设置 HTTP 代理 → 选择手动 ,接着将 IP 地址以及端口填写进去,然后存储即可。

输入过程中,服务器一栏 . 之间可能会自动插入空格,手动删除一下。

接着打开系统 Safari 浏览器 (其他浏览器可能无法唤起安装证书的弹窗),输入地址 chls.pro/ssl 打开页面,会自动唤起安装描述文件的弹窗,选择 允许

紧接着,前往: 设置 → 通用 → 描述文件 → 选择对应描述文件 → 安装

前往, 设置 → 通用 → 关于本机 → 证书信任设置(滑到屏幕最下面) → 将 Charles 证书勾选上 即可。(PS:我截图有两个是证书是两台不同的机器)

Charles 默认是 8888 ,不占用其他服务端口情况下,不修改问题也不大,根据实际情况自行调整。

这样我们就可以愉快地玩耍了

由于 Android 机型众多,各定制系统差别也不同,安装证书在不同 Android 版本也有限制,导致在使用 Charles 进行抓包时要比 iOS 难很多。

Android 7.0 之后默认不信任用户添加到系统的 CA 证书:

换句话说,就是对基于 SDK24 及以上的 APP 来说,即使你在手机上安装了抓包工具的证书也无法抓取 HTTPS 请求。

下面提供几个链接:

以上是关于解决Charles抓取https请求显示unknow的主要内容,如果未能解决你的问题,请参考以下文章

Mac charles 抓取https请求,安装证书后还是显示unknown

charles抓包显示乱码解决方法

Charles抓取https请求中文乱码的处理方法

charles使用(四)--抓取https请求

charles抓取https请求

charles 抓取https请求