强制程序硬编码监听一个端口以使用另一个端口?

强制程序硬编码监听一个端口以使用另一个端口?

我的公司正在使用一个侦听端口 80 的遗留程序。我们试图通过在其前面放置 NGINX 以支持将代理到(防火墙)http 端口的 HTTPS 请求来满足安全要求。

我们当前的问题是遗留程序也有硬编码的 URL,它指向 http 端口 80。我想在端口 80 上放置一个重定向,它将捕获这些 http 请求并将它们重定向到 https,但我不能这样做,只要因为旧程序绑定到端口 80。

我无法重新配置旧程序的默认绑定端口。 centos中有没有办法在程序请求绑定80端口时强制绑定到另一个端口?

我正在 centos 6.9 上运行(就像我说的,遗留系统)。

答案1

您在机器 A 上有一个客户端程序,它在端口 80 上向机器 B 发出 HTTP 请求。并且在机器 B 上有一个服务器程序,它在端口 80 上侦听 HTTP 请求。

如果 A = B,则 HTTPS 毫无意义,因为客户端和服务器之间的数据包永远不会传到网络上。因此,唯一有用的情况是 A ≠ B。

在 A 上运行 HTTP 到 HTTPS 代理,在 B 上运行 HTTPS 到 HTTP 代理。A 上的代理侦听端口 80 并通过端口 443(或者您愿意的其他端口)向 B 发送请求。 B 上的代理侦听端口 443(或您喜欢的任何端口)上的请求,并将本地请求发送到端口 80。端口之间不存在冲突。

如果 A 和 B 只有一个实例,那么设置 SSH 隧道的工作量将比设置两个代理的工作量要少。

相关内容