如何在外部防火墙上打开端口 443?

如何在外部防火墙上打开端口 443?

过去 4 天,我一直在尝试在服务器上配置 SSL,但毫无成效。我生成了一个 CSR 文件,上传了证书并配置了一个 Vhost,但似乎什么都没起作用。重新启动 Apache 时没有收到任何错误,错误日志中也没有任何内容。

当我与证书提供商联系以了解他们是否可以提供帮助时,他们说“我们无法通过端口 443 连接到服务器“example.com”。请确保您的外部防火墙上的端口 443 已打开以启用 SSL。”

当我运行 UFW Status 来查看端口是否打开时,我得到了以下结果,这似乎表明它是打开的。

   To                         Action      From
--                         ------      ----
443/tcp                    ALLOW       Anywhere
22                         ALLOW       Anywhere
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
21/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere (v6)
22                         ALLOW       Anywhere (v6)
22/tcp                     ALLOW       Anywhere (v6)
80/tcp                     ALLOW       Anywhere (v6)
21/tcp                     ALLOW       Anywhere (v6)

443/tcp                    ALLOW OUT   Anywhere
443/tcp                    ALLOW OUT   Anywhere (v6)

当我使用在线端口检查器网站查看它是否打开时,它显示 443 已关闭,列表中的所有其他端口都已打开。此时我不知道还能做什么来打开端口 443,非常感谢您的帮助。我正在运行 Ubuntu。

答案1

首先,验证您是否可以从本地计算机进行连接...您可以直接通过 telnet 连接到端口 443,无论是在本地主机 (127.0.0.1) 上,还是在您的计算机的 IP 地址上。您至少应该获得一个答案(即验证该端口上是否有监听器)。

例如 - 这就是你不要想:

$ telnet 127.0.0.1 443
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

示例 - 这确认有东西正在监听(正如它所说,您可以使用控制右括号返回到 telnet 提示符):

$ telnet 127.0.0.1 443
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
^]
telnet> quit
Connection closed.

注意:您也可以通过只检查 netstat 来“简化”此方法...您主要只是寻找“LISTEN”状态:

$ netstat -antl | grep 443
tcp        0      0 127.0.0.1:52421         127.0.0.1:443           TIME_WAIT
tcp6       0      0 :::443                  :::*                    LISTEN

要实际检查 SSL 握手,您可以使用 openssl:

$ openssl s_client -connect 127.0.0.1:443
CONNECTED(00000003)
...

您应该能够从外部检查类似的项目...特别是查看端口是否打开或者您是否可以完成 SSL 握手。

注意:如果您的本地网络位于非公共 IP 空间(例如 RFC1918 网络地址),则意味着您的机器前面的某个地方有一个 NAT……通常在路由器上。这些地址为 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16。如果是这种情况,您还必须打开和/或向前路由器或网络防火墙上的地址。

相关内容