场景是这样的:在我留下的一边“A”我只能从浏览器使用443用于HTTPS,没有为HTTPS请求启用其他端口。在“B”方面,我在一个IP地址后面的不同LAN服务器上有多个HTTPS站点到Internet。
是否有可能通过“A”端访问多个HTTPS站点?如果我在B侧进行端口转发,例如:从A侧:443到B侧:它可以工作,但仅适用于其中一个HTTPS站点。
我着手安装一台带有SNI(服务器名称指示)的Apache服务器,将www.sideb.server1.com:443和www.sideb.server2.com:443安装到B侧唯一的IP地址和不同的服务器上,但不知道我是否可以将流量从该服务器“转移”到另一个服务器。我认为重定向不起作用,因为A侧的客户端无法从B侧访问其他端口。
答案 0 :(得分:0)
应该可以让apache或ngnix作为反向代理工作,并根据客户端使用SNI发送的服务器名称将数据转发到正确的主机。但是,在这种情况下,所有证书都需要位于A侧,以便反向代理可以使用正确的证书终止SSL连接。并且,客户端证书不起作用。
理论上还有另一种选择:可以编写一种代理,只查看初始SSL客户端Hello(例如,从客户端发送的第一个数据包),提取明文服务器名称扩展,然后转发整个连接到正确的主机。在这种情况下,您不需要在代理端拥有最终证书,因为您不终止连接,并且客户端证书也将起作用。也许有人已经对此进行了编码。