这是一个创建于 657 天前的主题,其中的信息可能已经有所发展或是发生改变。
自建一个 nginx 服务器,配置好 https 访问!
主要配置只有一条:
location / {
proxy_pass $scheme://$host;
}
~~~~~~~~~~~~~~~~
接下来,给浏览器装一个“http head 修改插件”!设置 HOST 头为你想访问的目标网站的 SERVER_NAME
访问此 nginx 服务器,此时 nginx 会根据客户端发送的修改后的 HOST ,传回反向代理的不同目标网站
~~~~~~~~~~~~~~~~
大家可以扩展思维想一下!你想到了什么 :)~~~
~~~~~~~~~~~~~~~~
目前测试基本可行,但是不具备实用条件。
原因如下:
1 、现有 http head 修改插件操作很麻烦,而且不能修改 SNI ,浏览器地址栏也不是目标网站域名。所以希望有高手能出一个专用浏览器插件,实现浏览器不管什么地址,都可以固定往一台服务器发送请求,并实现 SNI 自定义。
2 、nginx 担任了回源服务器的 TLS 卸载工作,到客户端的链接又重新 TLS 加密,不存在 TLS in TLS 特征了。就如同 cloudflare CDN 那样。带来的问题是客户端访问时证书与回源网站服务器不一致,可以考虑自建 CA ,并信任此 CA ,使用通配符证书,但是也可能有问题。
顺便说一下 nginx 如果能像 sslsplit 那样,根据客户端的访问,自动用指定 CA 生成证书,就好了~!
3 、不一定非要用 host 头传输要访问的地址,这样容易被探测,可以考虑自定义头。(但是自定义头不要传到回源服务器去了,容易泄漏。)另外,也可以考虑用 ssl_verify_client on;将客户端访问保护起来。
4 、很有局限性,只能实现 Web 代理,不能做到 Socks5 那样的效果。