无法获取 Windows 主机文件来转发 HTTPS 标头

无法获取 Windows 主机文件来转发 HTTPS 标头

我目前正在尝试使用主机文件在 C# 中编写代理来重定向请求(特定请求)。我只希望它拦截一个地址。

它位于 Windows 上,并且代理在机器上本地运行。

忽略所有其他代理内容,我只是试图获取第一个请求的 HTTP 标头。

对于 HTTP 请求,我将代理设置为 127.0.0.1:80,并将 127.0.0.1 [foo.com] 放入主机文件中。

打开浏览器导航至http://foo.com/我抓住请求并显示它。

“GET foo.com/HTTP/1.1”等等

现在如果我:

对于 HTTPS 请求,我将代理设置为 127.0.0.1:443,并将 127.0.0.1 [foo.com] 放入主机文件中。

打开浏览器导航至https://foo.com/我抓住请求并显示它。

我原本期待的是“连接......等等”,但我实际上得到的只是垃圾字符。

如果使用相同的代理设置为 127.0.0.1:8080 并在浏览器代理设置中指向它,我会看到我期望的正确的 HTTPS 标头。

为什么主机文件会搞乱 HTTPS 请求标头?

答案1

它不会搞乱标题;您没有告诉操作系统/浏览器使用代理服务器,而是告诉操作系统实际服务器位于 127.0.0.1,因此您正在接收 SSL/TLS 握手。

相关内容