1

我的内部网络上有许多单独的 SSL 服务器,我想通过单个 IP 地址和端口向公共 Internet 公开它们。我的所有客户端都保证支持 server_name TLS 扩展(又名服务器名称指示或 SNI)。

我想象的是,nginx 将查看传入连接的 TLS 客户端 hello 消息,并确定将连接转发到哪个内部 IP。然后 nginx 充当 TCP 隧道,即 nginx 本身不参与任何 TLS 会话(即使它窥视传入的 TLS 客户端 hello 消息!),并且不需要 SSL 证书或自己的私钥。

换句话说,TLS 会话在客户端上启动,通过 nginx(它使用 TLS 客户端 hello 中的 server_name 信息多路复用目标)并在目标服务器中终止。

这可以用 nginx 完成吗?怎么做?如果没有,您是否知道其他一些可以做到这一点的代理软件?

最好的问候,
rkpr

4

1 回答 1

3

似乎 haproxy 可以这样做:

使用服务器 srv1 if { req_ssl_sni -i hostname1 }
服务器 srv1 192.168.0.1:443 权重 0
于 2014-07-29T16:01:56.093 回答