我想监控HTTPS
从我的应用程序到远程服务器的流量。我正在尝试遵循此说明,它适用于HTTP
(没有s
),但不适用于HTTPS
.
怎么了?我应该在我的应用程序中编写一些自定义代码来使用https-proxy
吗?
最简单的方法是使用CharlesProxy为您代理您的设备或模拟器流量。您需要做的唯一额外步骤是在您的设备/模拟器上安装 CharlesProxy SSL 证书,这非常简单:
从 Charles Proxy 下载证书(在他们的帮助菜单中)并将其放置在您的设备上,然后通过设备上的安全设置进行安装。
然后,您将设备或模拟器网络连接配置为使用手动代理并将其设置为 Charles 代理地址和端口。启用 SSL 代理,您的 SSL 连接将通过 Charles 端到端安全地路由,并且 Charles 将能够清楚地向您显示请求和响应的内容。
你的意思是你根本看不到流量还是你把它加密了?这是 Web 应用程序还是本机应用程序?您使用的是哪个 Android 版本?手机还是模拟器?
通常,如果您正确设置代理,您将获得流量,但已加密,因此您无法读取它。为了在 Fiddler 中查看实际内容,您需要您的设备信任 Fiddler 的根证书(用于即时创建假证书)。看到这个:
http://www.fiddler2.com/fiddler/help/httpsdecryption.asp
不幸的是,我还没有找到一种方法将根证书添加到 android 设备,而不是根它并替换证书存储(像这样)
我正在使用WireShark进行嗅探,它允许您监视和过滤原始数据。但是因为您使用 https 并且所有交易都加密了,所以我想它对您没有帮助。可能您可以从 https 切换到 http 进行调试,然后当一切正常时,将协议更改回 https
https 意味着 http 安全,所以它显然不能那么容易被嗅探。如果它与普通 http 一样不安全,那又有什么意义呢?
您必须了解更多有关安全网络通信的知识。或者,长话短说,至少您必须学习如何使用专门设计的 http 代理,例如 charles http://www.charlesproxy.com/documentation/welcome/,这样您就可以监控自己的 https 流量清晰的形式。