最佳實踐 – 保持通訊埠 80 為開啟狀態

最後更新於 | 查看所有文件

我們有時會收到用戶使用 HTTP-01 遇到問題的報告,而問題原因是他們的防火牆阻擋了通訊埠 80。 我們建議所有的網頁伺服器應該同時在通訊埠 80 提供 HTTP 服務;以及在通訊埠 443 提供 HTTPS 服務。 此外也應該將所有發送到通訊埠 80 的請求,重新導向到通訊埠 443,並加上 HTTP 強制安全傳輸技術 (HTTP Strict Transport Security, HSTS)。

開啟通訊埠 80 並不會導致伺服器更容易受到攻擊,因為通常通訊埠 80 和通訊埠 443 背後的軟體服務都是同一個。

將通訊埠 80 關閉並不會降低使用者意外地使用 HTTP 訪問網站的風險。 在正常情況下,使用者會收到重新導向至 HTTPS 的請求,並保護接下來的通訊。 如果使用者正受到中間人攻擊 (MITM),攻擊者就可以在通訊埠 80 上代替伺服器回應請求,而你的網站無法對使用者回應"拒絕連線"。

最後,保持通訊埠 80 開啟並提供重新導向,有助於使用者透過正確的 HTTPS 版本訪問你的網站。 有非常多你無法掌握的因素,會讓使用者透過 HTTP 訪問你的網站,例如:電子郵件中的自動連結,或是使用者手動輸入網域名稱。 網站最好替使用者重新導向到 HTTPS 版本,而不是告訴使用者拒絕連線。

不幸的是,有時候你有可能無法控制通訊埠 80 的開啟或關閉。 有些(大部分住戶區)的網路業者會因為各種原因禁止他人對通訊埠 80 的連線。 如果你的網路業者禁止你使用通訊埠 80,而你還是想取得憑證的話,你有兩個選擇:使用 DNS-01,或在通訊埠 443 上使用支援 TLS-ALPN-01 驗證的客戶端