如何在外部防火牆上打開埠 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。
首先,驗證您是否可以從本地電腦連接…您可以在 localhost (127.0.0.1) 以及您電腦的 IP 地址上遠端登錄到埠 443。您至少應該得到一個答案(即驗證該埠上有一個偵聽器)。
範例 - 這是您不想要的:
$ 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。如果是這種情況,您還必須在路由器或網路防火牆上打開和/或轉發地址。