Ssl

是否有任何理由不在網站上強制執行 HTTPS?

  • December 26, 2020

我經常光顧的一個網站終於決定在他們的伺服器上啟用 TLS,只是不像許多網站那樣強制要求它。維護者聲稱 TLS必須是可選的。為什麼?

在我自己的網站上,我早就設置了長期強制的 TLS 和 HSTS,並且禁用了較弱的密碼套件。通過 HTTP 301 可以保證明文訪問被隔離到 TLS 保護的版本。這會對我的網站產生負面影響嗎?

使用 TLS 有幾個很好的理由

(只有少數不這樣做的邊際理由)。

  • 如果站點有任何身份驗證,則使用 HTTP 公開竊取會話和密碼。

  • 即使在靜態的、僅提供資訊的站點上,使用 TLS 也可以確保沒有人篡改數據。

  • Google I/O 2014以來,Google 已採取多項措施鼓勵所有網站使用 HTTPS:

  • Mozilla 安全部落格還宣布棄用非安全 HTTP,使所有新功能僅適用於安全網站,並逐步取消對非安全網站的瀏覽器功能的訪問,特別是對使用者安全和隱私構成風險的功能

強制實施 TLS 也有幾個很好的理由

如果您已經擁有廣泛信任的證書,為什麼不總是使用它呢?幾乎所有目前的瀏覽器都支持 TLS 並安裝了根證書。多年來我實際看到的唯一兼容性問題是 Android 設備和缺少中間證書頒發機構,因為 Android 只直接信任根 CA。這可以通過將伺服器配置為將證書鏈發送回根 CA 來輕鬆防止。

如果您的維護人員仍然希望允許沒有直接的 HTTP 連接301 Moved Permanently,例如為了確保從一些非常舊的瀏覽器或移動設備訪問,瀏覽器無法知道您甚至配置了 HTTPS。此外,您不應在沒有以下內容的情況下部署HTTP嚴格傳輸安全 (HSTS)301 Moved Permanently

7.2.  HTTP Request Type

   If an HSTS Host receives a HTTP request message over a non-secure
   transport, it SHOULD send a HTTP response message containing a status
   code indicating a permanent redirect, such as status code 301
   (Section 10.3.2 of [RFC2616]), and a Location header field value
   containing either the HTTP request's original Effective Request URI
   (see Section 9 "Constructing an Effective Request URI") altered as
   necessary to have a URI scheme of "https", or a URI generated
   according to local policy with a URI scheme of "https").

Tor ProjectElectronic Frontier Foundation認識到了為這兩種協議配置的各種站點的問題,並通過多瀏覽器HTTPS Everywhere擴展來解決:

Web 上的許多站點對通過 HTTPS 的加密提供了一些有限的支持,但使其難以使用。例如,他們可能預設使用未加密的 HTTP,或者使用返回未加密站點的連結填充加密頁面。

混合內容也是一個巨大的問題,因為通過修改通過非安全 HTTP 連接載入的 JavaScript 或 CSS 可能對 HTTPS 站點進行 XSS 攻擊。因此,現在所有的主流瀏覽器都會警告使用者頁面內容混合,並拒絕自動載入。這使得在沒有HTTP 重定向的情況下很難維護站點301:您必須確保每個 HTTP 頁面只載入 HTTP 內容(CSS、JS、圖像等),並且每個 HTTPS 頁面只載入 HTTPS 內容。在兩者上使用相同的內容很難實現這一點。

引用自:https://serverfault.com/questions/841954