

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为您的 Application Load Balancer 创建 HTTPS 侦听器
<a name="create-https-listener"></a>

侦听器检查连接请求。您可在创建负载均衡器时定义侦听器，并可随时向负载均衡器添加侦听器。

要创建 HTTPS 侦听器，您必须在负载均衡器上部署至少一个 [SSL 服务器证书](https-listener-certificates.md)。负载均衡器先使用服务器证书终止前端连接，再解密来自客户端的请求，然后将请求发送到目标。您还必须指定一个[安全策略](describe-ssl-policies.md)，以用于协商客户端与负载均衡器之间的安全连接。

如果需要将加密流量传输至目标且负载均衡器不对其进行解密，则可以创建一个使用端口 443 上的 TCP 侦听器的网络负载均衡器或经典负载均衡器。通过 TCP 侦听器，负载均衡器将加密流量传递到目标，而不会对其进行解密。

此页面上的信息可帮助您为负载均衡器创建 HTTPS 侦听器。要向您的负载均衡器添加 HTTP 侦听器，请参阅 [为您的 Application Load Balancer 创建 HTTP 侦听器](create-listener.md)。

## 先决条件
<a name="https-listener-prereqs"></a>
+ 要将转发操作添加到默认侦听器规则，您必须指定可用的目标组。有关更多信息，请参阅 [为您的应用程序负载均衡器创建目标组](create-target-group.md)。
+ 您可以在多个侦听器中指定同一个目标组，但这些侦听器必须属于同一个负载均衡器。要将目标组与负载均衡器结合使用，您必须确认其没有被任何其他负载均衡器的侦听器使用。
+ 应用程序负载均衡器不支持 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. 在导航窗格中，选择**负载均衡器**。

1. 选择负载均衡器。

1. 在**侦听器和规则**选项卡上，选择**添加侦听器**。

1. 对于**协议**，选择 **HTTPS**。保留默认端口或输入其他端口。

1. （可选）对于**路由前操作**，请选择以下操作之一：
   + **对用户进行身份验证**-选择身份提供者并提供所需的信息。有关更多信息，请参阅 [使用 Application Load Balancer 验证用户身份](listener-authenticate-users.md)。
   + **验证令牌** — 输入 JWKS 端点、问题和任何其他声明。有关更多信息，请参阅 [JWTs 使用 Application Load Balancer 进行验证](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. 选择**添加侦听器**。

------
#### [ 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
```

------