View a markdown version of this page

在負載平衡器設定 HTTPS 終止 - AWS Elastic Beanstalk

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

在負載平衡器設定 HTTPS 終止

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

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

注意

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

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

若要指派憑證給您環境中的負載平衡器
  1. 開啟 Elastic Beanstalk 主控台,然後在區域清單中選取您的 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) (偏好) 中建立或上傳的憑證,也可以是使用 上傳到 IAM 的憑證 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 命名空間中的選項,在具有 SSL 憑證的連接埠 443 上設定 TLS 接聽程式。接聽程式會處理安全連線,並將流量路由至預設程序。

option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true' Protocol: TLS SSLCertificateArns: arn:aws:acm:us-east-2:1234567890123:certificate/####################################

設定安全群組

如果您設定負載平衡器,將傳輸資料轉傳到第 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"]}