如何监控iOS/Android设备中的https/ssl流量

3

我希望能看到将内容以未加密形式发送到服务器的页面请求,这是为了进行一些调试。

如果需要调试越狱/Rooting也可以,没有问题。

3个回答

8
我建议您使用Charles。我自己偶尔使用它,发现它很容易使用。
您可以从这里安装Charles。
您必须将您的移动设备(iOS或Android)配置为Charles代理,以便监视SSL流量。您必须在移动设备上安装Charles代理的SSL根证书,以便SSL流量可以被监视。
请按照以下步骤查找您需要绑定设备的Charles IP地址和端口号,以及您需要在设备中安装的SSL CA的URL:
帮助->SSL代理->在移动设备或远程浏览器上安装Charles根证书

enter image description here

记下带有端口号的IP地址和安装CA所需的URL。

enter image description here

iOS设备中绑定HTTP代理 - 进入设置 -> Wifi -> 连接与您的系统共享的wifi热点 - 连接后向下滚动到当前wifi并在HTTP代理中选择手动 - 在服务器和端口中输入IP和端口号

enter image description here

现在你已经连接到Charles Proxy,可以监控所有的HTTP流量了。

为了监控HTTPS流量:

在Safari中输入已记录的URL,它会显示安装提示,请点击“是”并安装。

现在,Charles可以监控设备发起的SSL流量。但是,Charles不会显示所有站点的未加密SSL流量。您需要添加需要监控SSL流量的站点。

以下是如何操作:

在Charles中进行以下选择:

代理 -> SSL代理设置

enter image description here

点击 Add 并输入要监视流量的 https 网站的 HostPort

enter image description here

enter image description here

现在,您可以在Charles中查看https网站的加密流量。

访问该网站,您应该能够在Charles的侧边栏上看到它,点击该URL,您应该能够在右侧看到未加密的流量!

更新

如果您使用的是iOS 10.3或更高版本,请打开Settings.app并导航至General > About > Certificate Trust Settings,找到Charles代理证书,并将其打开以启用完全信任,以进行SSL代理。


我已经为所有网站添加了SSL代理,但无法访问https网站,但对于http来说,它工作正常。 - Elstine P
我在这里提出了问题:https://dev59.com/4Knka4cB1Zd3GeqPKC8b - Elstine P
1
奇怪!它应该可以工作的!你在iOS设备上安装了SSL证书吗? - Durai Amuthan.H
是的,我通过访问提到的路径“chls.pro/ssl”进行安装,并且安装成功。 - Elstine P
请查看我的更新答案。 - Durai Amuthan.H
显示剩余2条评论

0

你需要在你的Mac/PC上安装一个代理。然后在你的iOS/Android设备上使用这个代理。这样你就可以捕获通过该代理传递的所有流量。我使用的是WireShark (https://www.wireshark.org/)。


谢谢,我会尝试的。 - Amy
我认为使用WireShark无法以未加密的形式查看流量。 - Durai Amuthan.H

0

我会推荐使用Charles。http://www.charlesproxy.com

相比Wireshark,它更易于使用,并且有一个简单的指南,可用于iOS设备和模拟器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接