為您的 Elastic Beanstalk 環境設定 HTTPS - AWS Elastic Beanstalk

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

為您的 Elastic Beanstalk 環境設定 HTTPS

如果您已經為您的 Elastic Beanstalk 環境購買和設定自訂網域名稱,可以使用 HTTPS 來讓使用者安全地連線到您的網站。如果您未擁有網域名稱,仍可使用 HTTPS 搭配自我簽署的憑證,以進行開發和測試。對於傳送使用者資料或登入資訊的任何應用程式而言,HTTPS 是必須使用的機制。

搭配 Elastic Beanstalk 環境使用 HTTPS 最簡單的方法,就是指派伺服器憑證給您環境的負載平衡器。當您設定負載平衡器來終止 HTTPS 時,用戶端和負載平衡器之間的連線是安全的。負載平衡器和 EC2 執行個體之間的後端連線使用 HTTP,因此不需再額外設定執行個體。

注意

使用 AWS Certificate Manager (ACM),您可以為您的網域名稱免費建立受信任的憑證。ACM 憑證只能與 AWS 負載平衡器和 Amazon CloudFront 分佈搭配使用,且 ACM 只能在特定 AWS 區域使用。

若要將 ACM 憑證與 Elastic Beanstalk 搭配使用,請參閱設定您 Elastic Beanstalk 環境的負載平衡器來終止 HTTPS

如果您是在單一執行個體的環境中執行應用程式,或需要保護整個連線 (一直到負載平衡器後方的 EC2 執行個體),您可以設定執行個體上執行的代理伺服器,來終止 HTTPS。若要設定您的執行個體終止 HTTPS 連線,需使用組態檔案來修改執行個體上所執行的軟體,並修改安全群組以實現安全的連線。

如果是負載平衡環境中的端對端 HTTPS,您可以結合執行個體與負載平衡器的終止動作,來加密這兩種連線。在預設情況下,如果您設定負載平衡器使用 HTTPS 來將傳輸資料轉傳,負載平衡器將會信任後端執行個體所提供的任何憑證。為實現最高的安全性,您可以將政策套用到負載平衡器,來防止負載平衡器連線到未提供受信任公有憑證的執行個體。

注意

您也可以設定負載平衡器,在不解密的狀態下轉傳 HTTPS 的傳輸資料。這項方法的缺點是負載平衡器無法查看請求,因此無法將轉傳作業最佳化和報告回應指標。

如果您所在的區域未提供 ACM 服務,您可以向第三方購買受信任的憑證。第三方憑證可用來針對您負載平衡器或後端執行個體或這兩者上的 HTTPS 傳輸資料,進行解密的動作。

若要進行開發與測試,您可以使用開放原始碼工具,來自行建立和簽署憑證。自我簽署的憑證易於建立而且免費,但無法用於公有網站上的前端解密。如果您試著針對與用戶端的 HTTPS 連線來使用自我簽署的憑證,則使用者的瀏覽器將會顯示錯誤訊息,告知您的網站並不安全。不過,您可以使用自我簽署的憑證來保護後端連線,而不會出現問題。

ACM 是佈建、管理和部署您伺服器憑證的慣用工具,其以程式設計方式或使用 AWS CLI。如果 ACM 無法在您的 AWS 區域中使用,您可以使用 AWS CLI 上傳第三方或自簽憑證和私密金鑰至 AWS Identity and Access Management (IAM)。儲存於 IAM 中的憑證可搭配負載平衡器和 CloudFront 分佈使用。

注意

GitHub 上的 Does it have Snakes? 範例應用程式,針對使用 Tomcat Web 應用程式來設定 HTTPS 的每項方法,包含了相關的組態檔案和說明。如需詳細資訊,請參閱 readme 檔案HTTPS 說明