將 HTTP 設定為 HTTPS 重新導向 - AWS Elastic Beanstalk

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將 HTTP 設定為 HTTPS 重新導向

為您的 Elastic Beanstalk 環境設定 HTTPS及其主題中,我們將討論將 Elastic Beanstalk 環境設定為使用 HTTPS,來確保對您的應用程式進行流量加密。此主題說明在最終使用者仍啟動對您應用程式的 HTTP 流量時,如何精心處理。您需要設定 HTTP 到 HTTPS 重新導向 (有時稱為強制 HTTPS) 來這麼做。

要設定重新導向,您先設定您的環境,來處理 HTTPS 流量。然後您便可以將 HTTP 流量重新導向到 HTTPS。這兩個步驟會在下列小節討論。

設定您的環境以處理 HTTPS 流量

取決於您環境的負載平衡組態,請執行以下其中一項作業:

將 HTTP 流量重新導向至 HTTPS

您可以設定您環境執行個體上的 web 伺服器或環境的 Application Load Balancer 來將 HTTP 流量重新導向至 HTTPS。執行下列任一步驟:

  • 設定執行個體 web 伺服器 - 此方法適用於任何 web 伺服器環境。設定您 Amazon Elastic Compute Cloud (Amazon EC2) 上的 Web 伺服器,以使用 HTTP 重新導向回應狀態回應 HTTP 流量。此組態取決於您環境的平台。尋找在 GitHub 上在 https-redirect 集合適用於您平台的資料夾,並使用該資料夾中的範例組態檔案。

    如果您的環境使用 Elastic Load Balancing 運作狀態檢查,負載平衡器預期運作狀態良好的執行個體會使用 HTTP 200 (OK) 回應來回應該 HTTP 運作狀態檢查訊息。因此,Web 伺服器不應將這些訊息重新導向到 HTTPS。在 https-redirect 中的範例設定檔案會正確處理這項需求。

  • 設定負載平衡器 — 如果您的負載平衡環境使用 Application Load Balancer,則此方法可運作。Application Load Balancer 可以在 HTTP 流量進入時傳送重新導向回應。在這種情況下,您不需要在環境的執行個體上設定重新導向。我們在 GitHub 上有兩個範例組態檔案,示範如何設定 Application Load Balancer 以進行重新導向。alb-http-to-https-redirection-full.config 組態檔案會在連接埠 443 上建立 HTTPS 接聽程式,並修改預設的連接埠 80 接聽程式,使其將傳入的 HTTP 流量重新導向至 HTTPS。alb-http-to-https-redirection.config 組態檔案預期定義 443 接聽程式 (您可以使用標準 Elastic Beanstalk 組態命名空間,或是 Elastic Beanstalk 主控台)。然後其會負責修改連接埠 80 接聽程式以進行重新導向。