V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
busier
V2EX  ›  NGINX

消除 TLS in TLS 特征的思路

  •  
  •   busier · 2023-03-10 17:16:11 +08:00 · 2073 次点击
    这是一个创建于 414 天前的主题,其中的信息可能已经有所发展或是发生改变。
    自建一个 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 那样的效果。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5375 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:32 · PVG 16:32 · LAX 01:32 · JFK 04:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.