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

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

前言


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

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


正文


一、安装 Charles


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


二、安装证书


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


1. 电脑端


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


78.webp.jpg

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


32.webp.jpg


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


331.webp.jpg


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


330.webp.jpg


2. 手机端


下面以 iOS 设备为例,而 Android 端各定制系统安装证书的方式可能略有差异。


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


238.webp.jpg

请注意,手机与电脑需连接在同一局域网内。


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


237.webp.jpg


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


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



236.webp.jpg


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


234.webp.jpg

还有最重要的一步,很多人就是忽略了该步骤,导致安装完证书后,抓取 HTTPS 请求仍是 unknown。

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


125.webp.jpg


三、Charles 配置


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

124.webp.jpg


还有一个非常重要的配置是 SSL Proxying Settings,勾选上 Enable SSL Proxying,添加 Include。否则即使添加了证书,抓取 HTTPS 也是 unknown。

这里根据实际需求来设置 Include 或者 Exclude,我这里设置为 *.443,也可以设置成 *.*。(通配符 * 是指所有域名或者端口)

24.webp.jpg


四、效果


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


123.webp.jpg


五、关于 Android 无法抓包的问题


由于挺久没有怎么折腾过 Android 手机了,下面这块内容源自网上整理的,也没有时间去实际测试过。


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


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


To provide a more consistent and more secure experience across the Android ecosystem, beginning with Android Nougat, compatible devices trust only the standardized system CAs maintained in AOSP.(源自 Android Developers Blog

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


下面提供几个链接:



六、其他



目录
相关文章
|
JSON 网络协议 安全
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(1)-HTTP和HTTPS基础知识
【7月更文挑战第16天】本文介绍了HTTP和HTTPS协议的基本概念与作用,强调了理解HTTP协议对使用抓包工具Fiddler的重要性。HTTP是用于Web浏览器与服务器间信息传输的协议,不加密,易被截取,不适合传输敏感信息。HTTPS是HTTP的安全版,通过SSL/TLS提供加密和服务器身份验证,确保数据安全。HTTP请求包括请求行、请求头、空行和可选的请求主体,响应则有响应行、响应头、空行和响应主体。HTTP协议无状态,而HTTPS解决了安全性问题,但也带来了额外的计算开销。Fiddler作为一个强大的抓包工具,可以帮助开发者和测试人员分析HTTP/HTTPS通信,理解请求和响应的结构。
317 4
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(1)-HTTP和HTTPS基础知识
|
Web App开发 存储
常见抓包工具配置抓取HTTPS
常见抓包工具配置抓取HTTPS
1386 1
|
Web App开发 存储 网络安全
Charles抓包神器的使用,完美解决抓取HTTPS请求unknown问题
本文介绍了在 Mac 上使用的 HTTP 和 HTTPS 抓包工具 Charles 的配置方法。首先,强调了安装证书对于抓取 HTTPS 请求的重要性,涉及 PC 和手机端。在 PC 端,需通过 Charles 软件安装证书,然后在钥匙串访问中设置为始终信任。对于 iOS 设备,需设置 HTTP 代理,通过电脑上的 IP 和端口访问特定网址下载并安装证书,同时在设置中信任该证书。配置 Charles 包括设置代理端口和启用 SSL 代理。完成这些步骤后,即可开始抓包。文章还提及 Android 7.0 以上版本可能存在不信任用户添加 CA 证书的问题,但未提供解决办法。
4330 0
Charles抓包神器的使用,完美解决抓取HTTPS请求unknown问题
|
Web App开发 网络安全
charles工具抓包教程(http跟https)
1.下载charles     可以去charles官网下载,下载地址:http://www.charlesproxy.com/download/    根据自己的操作系统下载对应的版本,然后进行安装,然后打开charles工具   2.
1144 0
|
5月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
147 18
|
5月前
|
网络安全 开发者
如何解决HTTPS协议在WordPress升级后对网站不兼容的问题
以上就是解决WordPress升级后HTTPS协议对网站的不兼容问题的方法。希望能把这个棘手的问题看成是学校的管理问题一样来应对,将复杂的技术问题变得更加有趣和形象,并寻觅出解决问题的方式。希望你的网站能在新的学期得到更好的发展!
122 19
|
5月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
432 20
|
5月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
188 1