像 Charles 这样的 HTTPS 代理
HTTPS proxy like Charles
我想在 node.js 中实现代理服务器,这有点类似于 Charles 代理 - 它应该拦截来自我的移动应用程序的 HTTPS 请求,解密它们,根据正文内容将其中一些请求路由到原始后端,并且用一些静态文件模拟其他人。
- Charles 或其他代理如何处理 HTTPS 内容?
- 我需要在移动设备上使用自签名根证书吗?
- 有没有图书馆可以帮助我?
使用 Charles Proxy 查看您手机的请求非常简单。
这是一个介绍如何设置的简单视频。 https://www.youtube.com/watch?v=AW2vTBRfOrU
- How this HTTPS stuff is handled in Charles or other proxies?
从技术上讲,Charles Proxy 或 Proxyman.io(我现在使用的那个)将执行以下步骤:
- 生成根证书并安装到钥匙串并信任它。此步骤只需执行一次。
- 打开本地服务器(在 8888 或 9090)。
- 将系统中的 HTTP 代理覆盖到此端口。因此,所有流量都将通过该端口。您可以使用
networksetup
CLI 轻松实现或在 macOS 上使用 Privileged Helper 工具实现高性能和安全。
- 一旦捕获到第一个套接字:如果是 HTTP 请求,则获取第一行消息。例如:
GET https://api.producthunt.com/v1/posts HTTP/1.1
- 然后打开这个URL的forward socket。
- 如果是 HTTPS,请确保执行 SSL 握手,然后获取第一行消息。
- 最后,只获取消息的其余部分并解析为正确的消息(来自 NodeJS 的HTTPCParser 将是潜在的候选者)
- 从客户端和目标服务器向前和向后发送数据。
- 如果需要,请执行操作操作,因为您是真正的中间人。
- Will I need self-signed root certification mobile device?
是的,您必须在 iOS 设备的第一步中安装根证书。对于 Header/Response 细节。检查 chls.pro/ssl 或 proxy.man/ssl 来自那些 Charles 或 Proxyman,并查看内容。
您可以在 iOS 模拟器上使用 ADVTrustStore
- Are there any libraries which will help me?
你可以查看那些著名的开源软件,看看它是如何工作的
- mitmproxy
- zapproxy
- http toolkit
希望对您有所帮助。
我想在 node.js 中实现代理服务器,这有点类似于 Charles 代理 - 它应该拦截来自我的移动应用程序的 HTTPS 请求,解密它们,根据正文内容将其中一些请求路由到原始后端,并且用一些静态文件模拟其他人。
- Charles 或其他代理如何处理 HTTPS 内容?
- 我需要在移动设备上使用自签名根证书吗?
- 有没有图书馆可以帮助我?
使用 Charles Proxy 查看您手机的请求非常简单。
这是一个介绍如何设置的简单视频。 https://www.youtube.com/watch?v=AW2vTBRfOrU
- How this HTTPS stuff is handled in Charles or other proxies?
从技术上讲,Charles Proxy 或 Proxyman.io(我现在使用的那个)将执行以下步骤:
- 生成根证书并安装到钥匙串并信任它。此步骤只需执行一次。
- 打开本地服务器(在 8888 或 9090)。
- 将系统中的 HTTP 代理覆盖到此端口。因此,所有流量都将通过该端口。您可以使用
networksetup
CLI 轻松实现或在 macOS 上使用 Privileged Helper 工具实现高性能和安全。 - 一旦捕获到第一个套接字:如果是 HTTP 请求,则获取第一行消息。例如:
GET https://api.producthunt.com/v1/posts HTTP/1.1
- 然后打开这个URL的forward socket。
- 如果是 HTTPS,请确保执行 SSL 握手,然后获取第一行消息。
- 最后,只获取消息的其余部分并解析为正确的消息(来自 NodeJS 的HTTPCParser 将是潜在的候选者)
- 从客户端和目标服务器向前和向后发送数据。
- 如果需要,请执行操作操作,因为您是真正的中间人。
- Will I need self-signed root certification mobile device?
是的,您必须在 iOS 设备的第一步中安装根证书。对于 Header/Response 细节。检查 chls.pro/ssl 或 proxy.man/ssl 来自那些 Charles 或 Proxyman,并查看内容。
您可以在 iOS 模拟器上使用 ADVTrustStore
- Are there any libraries which will help me?
你可以查看那些著名的开源软件,看看它是如何工作的 - mitmproxy - zapproxy - http toolkit
希望对您有所帮助。