

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

# 為 Application Load Balancer 建立 HTTPS 接聽程式
<a name="create-https-listener"></a>

接聽程式會檢查連線請求。當您在立負載平衡器時便定義接聽程式，然後可隨時新增接聽程式到您的負載平衡器。

若要建立 HTTPS 接聽程式，您必須在負載平衡器上部署至少一個 [SSL 伺服器憑證](https-listener-certificates.md)。負載平衡器使用伺服器憑證終止前端連接，然後解密用戶端的請求，再將它們傳送到目標。您還必須指定[安全政策](describe-ssl-policies.md)，用於交涉用戶端和負載平衡器之間的安全連線。

如果您需要將加密流量傳遞給目標，而不需要負載平衡器解密流量，就可以建立在連接埠 443 上具有 TCP 接聽程式的 Network Load Balancer 或 Classic Load Balancer。使用 TCP 接聽程式時，負載平衡器會將加密的流量傳遞給目標，而不需要對流量進行解密。

此頁面的資訊協助您為負載平衡器建立 HTTPS 接聽程式。若要將 HTTP 接聽程式新增至您的負載平衡器，請參閱[為 Application Load Balancer 建立 HTTP 接聽程式](create-listener.md)。

## 先決條件
<a name="https-listener-prereqs"></a>
+ 若要新增轉送動作到預設的接聽程式規則，您必須指定可用的目標群組。如需詳細資訊，請參閱[為您的 Application Load Balancer 建立目標群組](create-target-group.md)。
+ 您可以在多個接聽程式中指定相同的目標群組，但這些接聽程式必須屬於相同的負載平衡器。若要將目標群組與負載平衡器搭配使用，您必須確認沒有其他負載平衡器的接聽程式使用該目標群組。
+ Application Load Balancer 不支援 ED25519 金鑰。

## 新增 HTTPS 接聽程式
<a name="add-https-listener"></a>

您可以使用通訊協定和連接埠來設定接聽程式，以便從用戶端連線至負載平衡器。如需詳細資訊，請參閱[接聽程式組態](load-balancer-listeners.md#listener-configuration)。

建立安全接聽程式時，您必須指定安全政策和憑證。若要將憑證新增至憑證清單，請參閱 [將憑證新增至憑證清單](listener-update-certificates.md#add-certificates)。

您必須為接聽程式設定預設規則。您可以在建立接聽程式之後新增其他接聽程式規則。如需詳細資訊，請參閱[接聽程式規則](listener-rules.md)。

------
#### [ Console ]

**新增 HTTPS 接聽程式**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格上選擇 **Load Balancers (負載平衡器)**。

1. 選取負載平衡器。

1. 在**接聽程式和規則**索引標籤上，選擇**新增接聽程式**。

1. 請在 **Protocol (通訊協定)** 中選擇 **HTTPS**。保留預設連接埠或輸入不同的連接埠。

1. （選用） 針對**預先路由動作**，選取下列其中一個動作：
   + **驗證使用者** – 選擇身分提供者並提供必要的資訊。如需詳細資訊，請參閱[使用 Application Load Balancer 來驗證使用者身分](listener-authenticate-users.md)。
   + **驗證字符** – 輸入 JWKS 端點、問題和任何其他宣告。如需詳細資訊，請參閱[使用 Application Load Balancer 驗證 JWTs](listener-verify-jwt.md)。

1. 針對**路由動作**，選取下列其中一個動作：
   + **轉送至目標群組** – 選擇目標群組。若要新增另一個目標群組，請選擇**新增目標群組**、選擇目標群組、檢閱相對權重，並視需要更新權重。如果您在任何目標群組上啟用粘性，則必須啟用群組層級粘性。

     如果您沒有符合您需求的目標群組，請選擇**建立目標群組以立即建立目標群組**。如需詳細資訊，請參閱[建立目標群組](create-target-group.md)。
   + **重新導向至 URL** – 在 **URI 部分**索引標籤上分別輸入每個部分，或在完整 URL 索引標籤上輸入完整地址，以輸入 **URL**。針對**狀態碼**，根據您的需求選取暫時 (HTTP 302) 或永久 (HTTP 301)。
   + **傳回固定回應** – 輸入**回應碼**以針對捨棄的用戶端請求傳回。或者，您可以指定**內容類型**和**回應內文**。

1. 針對**安全政策**，我們會選取建議的安全政策。您可以視需要選取不同的安全政策。

1. 針對**預設 SSL/TLS 憑證**，選擇預設憑證。我們也會將預設憑證新增至 SNI 清單。您可以使用下列其中一個選項來選取憑證：
   + **從 ACM** – 從憑證 **（從 ACM) 選擇憑證**，以顯示可用的憑證 AWS Certificate Manager。
   + **從 IAM** – 從憑證 **（從 IAM) 選擇憑證**，以顯示您匯入的憑證 AWS Identity and Access Management。
   + **匯入憑證** – 選擇憑證的目的地；**匯入至 ACM** 或**匯入至 IAM**。對於**憑證私有金鑰**，請複製並貼上私有金鑰檔案 (PEM 編碼） 的內容。對於**憑證內文**，複製並貼上公有金鑰憑證檔案 (PEM 編碼） 的內容。對於**憑證鏈**，請複製並貼上憑證鏈檔案 (PEM 編碼） 的內容，除非您使用自我簽署憑證，而且瀏覽器不一定要隱含地接受憑證。

1. （選用） 若要啟用交互身分驗證，請在**用戶端憑證處理**下，啟用**相互身分驗證 (mTLS)**。

   預設模式為**傳遞**。如果您選取**使用信任存放區驗證**：
   + 根據預設，具有過期用戶端憑證的連線會遭到拒絕。若要變更此行為，請展開**進階 mTLS 設定**，然後在**用戶端憑證過期**下，選取**允許過期的用戶端憑證**。
   + 針對**信任存放**區，選擇現有的信任存放區，或選擇**新增信任存放區**並提供必要的資訊。

1. （選用） 若要新增標籤，請展開**接聽程式標籤**。選擇**新增標籤**，然後輸入標籤索引鍵和標籤值。

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

------
#### [ AWS CLI ]

**建立 HTTPS 接聽程式**  
使用 [create-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) 命令。下列範例會建立 HTTPS 接聽程式，其中包含將流量轉送至指定目標群組的預設規則。

```
aws elbv2 create-listener \
    --load-balancer-arn load-balancer-arn \
    --protocol HTTPS \
    --port 443 \
    --default-actions Type=forward,TargetGroupArn=target-group-arn \
    --ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06 \
    --certificates certificate-arn
```

------
#### [ CloudFormation ]

**建立 HTTPS 接聽程式**  
定義 [AWS::ElasticLoadBalancingV2::Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listener.html) 類型的資源。下列範例會建立 HTTPS 接聽程式，其中包含將流量轉送至指定目標群組的預設規則。

```
Resources:
  myHTTPSListener:
    Type: 'AWS::ElasticLoadBalancingV2::Listener'
    Properties: 
      LoadBalancerArn: !Ref myLoadBalancer
      Protocol: HTTPS
      Port: 443
      DefaultActions:
        - Type: "forward"
          TargetGroupArn: !Ref myTargetGroup
      SslPolicy: ELBSecurityPolicy-TLS13-1-2-2021-06
      Certificates: 
        - CertificateArn: certificate-arn
```

------