設定您 Elastic Beanstalk 環境的負載平衡器來終止 HTTPS - AWS Elastic Beanstalk

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

設定您 Elastic Beanstalk 環境的負載平衡器來終止 HTTPS

若要將 AWS Elastic Beanstalk 環境更新為使用 HTTPS,您需要為環境中的負載平衡器設定 HTTPS 接聽程式。兩種負載平衡器類型支援 HTTPS 接聽程式:Classic Load Balancer 和 Application Load Balancer。

您可以使用 Elastic Beanstalk 主控台或組態檔來設定安全接聽程式,並指派憑證。

注意

單一執行個體環境沒有負載平衡器,不在負載平衡器支援 HTTPS 終止。

使用 Elastic Beanstalk 主控台設定安全接聽程式

若要指派憑證給您環境中的負載平衡器
  1. 開啟彈性魔豆控制台,然後在區域清單中選取您的. AWS 區域

  2. 在導覽窗格中,選擇環境,然後在清單中選擇您環境的名稱。

    注意

    如果您有許多環境,請使用搜尋列來篩選環境清單。

  3. 在導覽窗格中,選擇組態

  4. Load balancer (負載平衡器) 組態類別中,選擇 Edit (編輯)

    注意

    如果 Load balancer (負載平衡器) 組態類別沒有 Edit (編輯) 按鈕,您的環境便沒有負載平衡器

  5. 修改負載平衡器頁面,程序會因與您的環境關聯的負載平衡器類型而不同。

    • Classic Load Balancer

      1. 選擇 Add listener (新增接聽程式)

      2. Classic Load Balancer listener (Classic Load Balancer 接聽程式) 對話方塊中,設定下列設定:

        • 對於 Listener port (接聽程式連接埠),輸入傳入流量連接埠,通常為 443

        • 對於 Listener protocol (接聽程式協定),選擇 HTTPS

        • 對於 Instance type (執行個體連接埠),輸入 80

        • 對於 Instance protocol (執行個體協定),選擇 HTTP

        • 對於 SSL certificate (SSL 憑證),選擇您的憑證。

      3. 選擇新增

    • Application Load Balancer

      1. 選擇 Add listener (新增接聽程式)

      2. Application Load Balancer listener (Application Load Balancer 接聽程式) 對話方塊中,設定下列設定:

        • Port (連接埠) 中輸入傳入流量連接埠,通常為 443

        • 請在 Protocol (通訊協定) 中選擇 HTTPS

        • 對於 SSL certificate (SSL 憑證),選擇您的憑證。

      3. 選擇新增

      注意

      若是使用 Classic Load Balancer 和 Application Load Balancer,如果下拉式選單未顯示任何憑證,您應該在 AWS Certificate Manager (ACM) (偏好) 中為自訂網域名稱建立或上傳憑證。或是使用 AWS CLI將憑證上傳到 IAM。

    • Network Load Balancer

      1. 選擇 Add listener (新增接聽程式)

      2. Network Load Balancer listener (Network Load Balancer 接聽程式) 對話方塊中,對於 Port (連接埠),輸入傳入流量連接埠,通常是 443

      3. 選擇新增

  6. 若要儲存變更,請選擇頁面底部的儲存變更

使用組態檔案設定安全接聽程式

您可以利用以下其中一個組態檔設定負載平衡器的安全接聽程式。

範例 .ebextensions/securelistener-clb.config

當您的環境具有 Classic Load Balancer 時,請使用此範例。範例使用了 aws:elb:listener 命名空間中的選項,以指定的憑證設定 443 埠的 HTTPS 接聽程式,並透過 80 通訊埠,將加密的傳輸資料轉傳給您環境中的執行個體。

option_settings: aws:elb:listener:443: SSLCertificateId: arn:aws:acm:us-east-2:1234567890123:certificate/#################################### ListenerProtocol: HTTPS InstancePort: 80

用您憑證的 ARN 來取代反白顯示的文字。憑證可以是您在 AWS Certificate Manager (ACM) 中建立或上傳的憑證 (偏好),也可以是您使用 AWS CLI.

如需 Classic Load Balancer 設定選項的詳細資訊,請參閱Classic Load Balancer 組態命名空間

範例 .ebextensions/securelistener-alb.config

當您的環境具有 Application Load Balancer 時,請使用此範例。範例使用在 aws:elbv2:listener 命名空間中的選項,使用指定的憑證在連接埠 443 上設定 HTTPS 接聽程式。此接聽程式將流量路由傳送到預設的程序。

option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true' Protocol: HTTPS SSLCertificateArns: arn:aws:acm:us-east-2:1234567890123:certificate/####################################
範例 .ebextensions/securelistener-nlb.config

當您的環境具有 Network Load Balancer 時,請使用此範例。此範例使用 aws:elbv2:listener 命名空間中的選項來設定連接埠 443 上的接聽程式。此接聽程式將流量路由傳送到預設的程序。

option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true'

設定安全群組

如果您設定負載平衡器,將傳輸資料轉傳到第 80 埠以外的執行個體通訊埠,則您必須新增安全群組的規則,允許從您的負載平衡器通過執行個體通訊埠傳入資料。如果您在自訂 VPC 中建立環境,Elastic Beanstalk 會為您新增此規則。

您可以在您應用程式的 .ebextensions 目錄中,將 Resources 金鑰加入組態檔,來新增這項規則。

以下範例組態檔案將傳入規則新增至 AWSEBSecurityGroup 安全群組。如此將允許來自負載平衡器安全群組的連接埠 1000 流量。

範例 .ebextensions/sg-ingressfromlb.config
Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 1000 FromPort: 1000 SourceSecurityGroupId: {"Fn::GetAtt" : ["AWSEBLoadBalancerSecurityGroup", "GroupId"]}