我正在开发一个网站,由于登录系统,该网站需要 https 连接。
我在端口 443 上打开了 Tomcat 的连接器,连接https://localhost
正常,但我需要它从外部可访问(使用公共 IP 地址)。我进入路由器并打开“端口转发”。
我尝试打开端口 443,但路由器(Fritz!Box7390)说“您无法创建或保持门户网站,因为您无法访问门户网站。”,即“无法打开端口 443,因为它已经打开。”。
问题是我无法连接到服务器,因为该端口显然未打开,并且它也不存在于端口转发面板中(我在其中看到所有打开的端口)。
我曾是当我不需要更安全的连接方式时,能够打开端口 80。
我该如何成功打开它?我在网上找不到任何帮助
答案1
您正在开发一个网站。您希望从互联网到您的公共 IP 地址(TCP 端口 443)的流量由提供您网站信息的 HTTPS 服务器处理。
常见的问题是,当来自互联网的流量到达您的公共 IP 地址时,它会到达您的调制解调器。现在您希望调制解调器接收来自互联网的流量,然后将这些流量转发到运行处理您网站的 Web 服务器的计算机。该过程称为端口转发。
从评论中可以怀疑您的路由器设置为使用 HTTPS 来允许配置路由器,并且路由器允许“外部流量”(即来自互联网的流量)使用 HTTPS 配置路由器。该功能通常作为选项提供,并且该功能经常被启用。这会导致几个问题,因此人们完全正确地认为这种常见情况可能存在问题。
第一个问题是,如果路由器运行处理 TCP 端口 443 流量的“HTTPS 服务器”软件,并且路由器响应流量,那么 HTTPS 流量就会发生这种情况。这不是您想要的,因为您想要的是将 HTTPS 流量发送到运行 Web 服务器的计算机。
第二个问题是,这允许互联网上的人们控制您的调制解调器。这必须得到保护。我们这些知情人士都知道,路由器制造商通常不会使路由器足够安全以免受攻击,因此建议您永远不要这样做(如果您没有将路由器的固件替换为比制造商发布的更可信的自定义固件)。更糟糕的是,许多启用该功能的人甚至懒得更改默认密码,因此这是一个巨大的安全漏洞。(这是此设置的第二个问题。)唯一可以减轻这个问题的方面是,攻击者通常不会发现控制家庭/办公室路由器对攻击特别有用,因此发生攻击的动机相对较小。然而,攻击确实会发生,所以最好不要打开这个漏洞。
那么你应该怎么做呢?在你的路由器中查找任何与使用 HTTPS 通过互联网进行配置/管理相关的选项,有些设备可能将其称为 WAN。在你这样做的同时,寻找任何其他远程管理选项,如 HTTP。关闭所有允许从 WAN 访问的选项。允许从一个 LAN 端口访问是完全可以接受的,允许从所有 LAN 端口访问也是合理可接受的,但完全不允许访问 WAN。
现在有些人希望冒着允许从 WAN 进行远程管理的安全风险。如果他们更改默认凭据(密码,也可能是用户名),这可能是可以容忍的。如果他们想这样做,他们应该了解风险。但是,他们也应该明白,这样做不会允许端口 443 上的 HTTPS 流量转发到内部机器。由于您确实希望转发该流量,因此允许 WAN 管理不是实现您的特定目标的选项。
另一种选择是拥有多个公共 IP 地址,但对于许多 ISP 来说,这对于 IPv4 来说成本高昂,而且可能更复杂,而且通常没有必要。大多数人不需要走这条路,除非他们希望有多个 HTTPS 服务器响应同一个 TCP 端口号,而如果您只是设置一个网站,通常不会出现这种情况。(由于 SNI,即使多个网站通常也可以使用单个 HTTPS 服务器端口,因此这条路线没有必要。)
至少从理论上讲,可能还有其他原因。但是,您的评论“无法打开端口 443,因为它已经打开了。”(感谢您为我们将其从法语翻译过来!)表明路由器很可能正在将 TCP 端口 443 用于其他用途。如果路由器提供任何类似于 Unix 提示符的东西,您可能能够使用一些标准命令来获取有关使用该端口的内容的更多信息。最有可能的是,您正在使用 Web 界面(或者可能是供应商提供的专用软件)配置路由器,在这种情况下,您只需手动查看图形界面,希望找到导致问题的选项。尝试查找名称为“管理”之类的选项(菜单或选项屏幕)。除非您提供路由器的品牌(制造商)和型号,否则我们可能无法获得更具体的信息。