

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

# VPC Lattice 服务的 HTTPS 侦听器
<a name="https-listeners"></a>

侦听器是用于检查连接请求的进程。您可以在创建服务时定义侦听器。您可以随时向 VPC Lattice 中的服务添加侦听器。

您可以创建 HTTPS 侦听器，该侦听器使用 TLS 版本 1.2 或 TLS 1.3 直接终止与 VPC Lattice 的 HTTPS 连接。VPC Lattice 将预置和管理与 VPC Lattice 生成的完全限定域名（FQDN）关联的 TLS 证书。VPC Lattice 支持 HTTP/1.1 和 HTTP/2 上的 TLS。当您使用 HTTPS 侦听器配置服务时，VPC Lattice 将通过应用程序层协议协商（ALPN）自动确定 HTTP 协议。如果没有 ALPN，VPC Lattice 默认使用 HTTP/1.1。

VPC Lattice 使用多租户架构，这意味着可以在同一端点上托管多个服务。VPC Lattice 对每个客户端请求使用带有服务器名称指示（SNI）的 TLS。不支持加密的客户端问候 (ECH) 和加密服务器名称指示 (ESNI)。

VPC Lattice 可以侦听 HTTP、HTTPS、HTTP/1.1 和 HTTP/2，并使用这些协议和版本与目标通信。这些侦听器和目标组配置不需要匹配。VPC Lattice 管理协议和版本之间升级和降级的整个过程。有关更多信息，请参阅 [协议版本](target-groups.md#target-group-protocol-version)。

为确保您的应用程序解密流量，请改为创建 TLS 侦听器。通过 TLS 直通，VPC 莱迪思不会终止 TLS。有关更多信息，请参阅 [TLS 侦听器](tls-listeners.md)。

**Contents**
+ [安全策略](#listener-security-policy)
+ [ALPN 策略](#listener-alpn-policy)
+ [添加 HTTPS 侦听器](#add-https-listener)

## 安全策略
<a name="listener-security-policy"></a>

VPC Lattice 使用的安全策略是 TLSv1 .2 协议和 SSL/TLS 密码列表的组合。该协议在客户端和服务器之间建立安全连接，有助于确保客户端和 VPC Lattice 中的服务之间传递的所有数据均为私有。密码是使用加密密钥创建编码消息的加密算法。协议使用多种密码对数据进行加密。在连接协商过程中，客户端和 VPC Lattice 按优先顺序提供各自支持的密码和协议列表。默认情况下，会为安全连接选择服务器列表中与任何一个客户端的密码匹配的第一个密码。

VPC Lattice 按以下优先顺序使用以下 TLS 1.2 SSL/TLS 密码：
+ `ECDHE-RSA-AES128-GCM-SHA256`
+ `ECDHE-RSA-AES128-SHA`
+ `ECDHE-RSA-AES256-GCM-SHA384`
+ `ECDHE-RSA-AES256-SHA`
+ `AES128-GCM-SHA256`
+ `AES128-SHA`
+ `AES256-GCM-SHA384`
+ `AES256-SHA`

VPC Lattice 还按以下优先顺序使用以下 TLS 1.3 SSL/TLS 密码：
+ `TLS_AES_128_GCM_SHA256`
+ `TLS_AES_256_GCM_SHA384`
+ `TLS_CHACHA20_POLY1305_SHA256`

## ALPN 策略
<a name="listener-alpn-policy"></a>

*应用程序层协议协商（ALPN）*是一种 TLS 扩展，在初始 TLS 握手 hello 消息中发送。通过 ALPN，应用层能够协商应在安全连接（例如 HTTP/1 和 HTTP/2）上使用什么协议。

当客户端发起 ALPN 连接时，VPC Lattice 服务会将客户端 ALPN 首选项列表与其 ALPN 策略进行比较。如果客户端支持来自 ALPN 策略的协议，VPC Lattice 服务会根据 ALPN 策略的首选项列表建立连接。否则，服务不使用 ALPN。

VPC Lattice 支持以下 ALPN 策略：

`HTTP2Preferred`  
首选 HTTP/2 而不是 HTTP/1.1。ALPN 首选项列表是 h2、http/1.1。

## 添加 HTTPS 侦听器
<a name="add-https-listener"></a>

为侦听器配置一个协议和端口，用于从客户端连接到服务，并为默认侦听器规则配置一个目标组。有关更多信息，请参阅 [侦听器配置](listeners.md#listener-configuration)。

**先决条件**
+ 要将转发操作添加到默认侦听器规则，您必须指定可用的 VPC Lattice 目标组。有关更多信息，请参阅 [创建 VPC Lattice 目标组](create-target-group.md)。
+ 您可以在多个侦听器中指定同一个目标组，但这些侦听器必须属于同一 VPC Lattice 服务。要在 VPC Lattice 服务中使用目标组，必须验证目标组未被任何其他 VPC Lattice 服务的侦听器使用。
+ 您可以使用 VPC Lattice 提供的证书，也可以将自己的证书导入到。 AWS Certificate Manager有关更多信息，请参阅 [VPC Lattice 自带证书（BYOC）](service-byoc.md)。

**使用控制台添加 HTTPS 侦听器**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中的 **VPC Lattice** 下，选择**服务**。

1. 选择服务名称以打开其详细信息页面。

1. 在**路由**选项卡上，选择**添加侦听器**。

1. 对于**侦听器名称**，您可以提供自定义侦听器名称，也可以使用侦听器的协议和端口作为侦听器名称。您指定的自定义名称最多可包含 63 个字符，且对账户中的每项服务必须是唯一的。有效字符：a-z、0-9 和连字符（-）。不能将连字符用作第一个或最后一个字符，也不能紧跟在另一个连字符之后。创建侦听器后，不能更改其名称。

1. 对于**协议 : 端口**，选择 **HTTPS**，然后输入端口号。

1. 对于**默认操作**，选择要接收流量的 VPC Lattice 目标组，然后选择要分配给该目标组的权重。为目标组分配的权重可用于设定目标组接收流量的优先级。例如，如果两个目标组具有相同的权重，则每个目标组将接收一半的流量。如果只指定了一个目标组，则 100% 的流量将发送到一个目标组。

   您可以选择为默认操作添加另一个目标组。选择**添加操作**，然后选择一个目标组并指定其权重。

1. （可选）要添加其他规则，请选择**添加规则**，然后输入规则的名称、优先级、条件和操作。

   您可以为每条规则指定一个 1 到 100 之间的优先级编号。侦听器不能具有优先级相同的多个规则。规则是按优先级顺序 (从最低值到最高值) 计算的。最后评估默认规则。有关更多信息，请参阅 [侦听器规则](listener-rules.md)。

1. （可选）要添加标签，请展开**侦听器标签**，选择“添加新标签”，然后输入标签键和标签值。

1. 对于 **HTTPS 侦听器证书设置**，如果您在创建服务时未指定自定义域名，VPC Lattice 会自动生成 TLS 证书，以保护流经侦听器的流量。

   如果您使用自定义域名创建了服务，但没有指定匹配的证书，则现在可以通过从**自定义 SSL/TLS **证书中选择证书来完成此操作。否则，选择您在创建服务时指定的证书。

1. 检查您的配置，然后选择**添加**。

**要添加 HTTPS 侦听器，请使用 AWS CLI**  
使用 [create-listener](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-listener.html) 命令创建具有默认规则的侦听器，并使用 [create-rule](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-rule.html) 命令创建其他侦听器规则。