在 SSL WebSocket 连接 (wss) 中拦截请求

Posted

技术标签:

【中文标题】在 SSL WebSocket 连接 (wss) 中拦截请求【英文标题】:Intercept requests in SSL WebSocket connection (wss) 【发布时间】:2021-05-25 17:54:55 【问题描述】:

我有一个 WSS 服务器正在运行,我想拦截客户端和服务器之间的 WebSocket 消息。

我能够使用 WS(无 SSL)拦截 WebSocket 消息,但使用 WSS(使用 SSL)没有任何成功。我收到关于自签名证书的错误,我的测试客户端 (wscat) 不想使用该证书。 (证书链中的自签名证书)

最后,我如何能够拦截来自不同桌面应用程序的连接?那么假设应用程序 A 试图连接到 WSS 服务器,我将如何在不告诉桌面应用程序使用代理的情况下拦截它?

谢谢!

与上述问题无关,但由于此错误,我也无法代理 HTTPS 请求:

sslv3 警告证书错误

【问题讨论】:

【参考方案1】:

我收到关于自签名证书的错误,我的测试客户端 (wscat) 不想使用该证书。

这个问题实际上是关于 wscat 而不是 mitmproxy。 https://***.com/a/58149466/934719 提到您可以将 -n 传递给 wscat 以禁用本地测试的证书检查。

最后,我如何能够拦截来自不同桌面应用程序的连接?如果应用程序 A 试图连接到 WSS 服务器,如果不告诉桌面应用程序使用代理,我将如何拦截它?

如果您无法告诉桌面应用程序使用代理,那么将其设置为reverse proxy 可能是最简单的。

【讨论】:

啊,好吧!如果我使用反向代理,我可以只“收听”所有消息并阅读并可能修改它们,然后将它们发送到原始服务器/连接吗? “隐形”代理不是更好吗?不过,不确定反向代理是如何工作的。 说,桌面应用程序连接到111.222.333.444:1234 的 WSS 服务器,我该如何拦截?

以上是关于在 SSL WebSocket 连接 (wss) 中拦截请求的主要内容,如果未能解决你的问题,请参考以下文章

WSS over Secure SSL 连接仅在 FireFox 上失败,错误 1006

如何创建安全(TLS/SSL)Websocket 服务器

engine.io/wss/SSL/HTTP:如何配置?

https 的 WSS 连接失败

WSS websocket 的 ELB 监听器配置

javax websocket客户端ssl连接