为您的 Application Load Balancer 创建 HTTPS 侦听器 - Elastic Load Balancing
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为您的 Application Load Balancer 创建 HTTPS 侦听器

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

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

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

应用程序负载均衡器不支持 ED25519 密钥。

此页面上的信息可帮助您为负载均衡器创建 HTTPS 侦听器。要向您的负载均衡器添加 HTTP 侦听器,请参阅 为您的 Application Load Balancer 创建 HTTP 侦听器

SSL 证书

负载均衡器需要 X.509 证书(SSL/TLS 服务器证书)。证书是由证书颁发机构 (CA) 颁发的数字化身份。证书包含标识信息、有效期限、公有密钥、序列号以及发布者的数字签名。

在创建用于负载均衡器的证书时,您必须指定域名。证书上的域名必须与自定义域名记录匹配,以确保我们能够验证 TLS 连接。如果不匹配,则流量不会加密。

必须为证书指定完全限定域名 (FQDN)(例如 www.example.com)或顶点域名(例如 example.com)。您还可以使用星号 (*) 作为通配符来保护同一域中的多个站点名称。请求通配符证书时,星号 (*) 必须位于域名的最左侧位置,而且只能保护一个子域级别。例如,*.example.com 保护 corp.example.comimages.example.com,但无法保护 test.login.example.com。另请注意,*.example.com 仅保护 example.com 的子域,而不保护裸域或顶点域 (example.com)。通配符名称显示在证书的 Subject(主题)字段和 Subject Alternative Name(主题替代名称)扩展中。有关公共证书的更多信息,请参阅《Amazon Certificate Manager 用户指南》中的请求公共证书

我们建议您使用 Amazon Certificate Manager (ACM) 为您的负载均衡器创建证书。ACM 支持具有 2048、3072 和 4096 位密钥长度的 RSA 证书,以及所有 ECDSA 证书。ACM 与 Elastic Load Balancing 集成,以便您可以在负载均衡器上部署证书。有关更多信息,请参阅 Amazon Certificate Manager 用户指南

或者,您可以使用 SSL/TLS 工具创建证书签名请求 (CSR),然后获取 CA 签署的 CSR 以生成证书,然后将证书导入 ACM 或将证书上传到 (IAM)。 Amazon Identity and Access Management 有关将证书导入 ACM 的信息,请参阅 Amazon Certificate Manager 用户指南中的将证书导入。有关将证书上传到 IAM 的更多信息,请参阅 IAM 用户指南中的使用服务器证书

默认证书

创建 HTTPS 侦听器时,必须仅指定一个证书。此证书称为默认证书。创建 HTTPS 侦听器后,您可以替换默认证书。有关更多信息,请参阅 替换默认证书

如果在证书列表中指定其他证书,则仅当客户端在不使用服务器名称指示 (SNI) 协议的情况下连接以指定主机名或证书列表中没有匹配的证书时,才使用默认证书。

如果您未指定其他证书但需要通过单一负载平衡器托管多个安全应用程序,则可以使用通配符证书或为证书的每个其他域添加使用者备用名称 (SAN)。

证书列表

创建 HTTPS 侦听器后,它具有默认证书和空证书列表。您可以选择将证书添加到侦听器的证书列表中。使用证书列表可使负载均衡器在同一端口上支持多个域,并为每个域提供不同的证书。有关更多信息,请参阅 将证书添加到证书列表

负载均衡器使用支持 SNI 的智能证书选择算法。如果客户端提供的主机名与证书列表中的一个证书匹配,则负载均衡器将选择此证书。如果客户端提供的主机名与证书列表中的多个证书匹配,则负载均衡器将选择客户端可支持的最佳证书。根据以下标准,按下面的顺序选择证书:

  • 公有密钥算法 (ECDSA 优先于 RSA)

  • 哈希算法 (SHA 优先于 MD5)

  • 密钥长度 (首选最大值)

  • 有效期

负载均衡器访问日志条目指示客户端指定的主机名和向客户端提供的证书。有关更多信息,请参阅 访问日志条目

证书续订

每个证书都有有效期限。您必须确保在有效期结束之前续订或替换负载均衡器的每个证书。这包括默认证书和证书列表中的证书。续订或替换证书不影响负载均衡器节点已收到的进行中的请求,并暂停指向正常运行的目标的路由。续订证书之后,新的请求将使用续订后的证书。更换证书之后,新的请求将使用新证书。

您可以按如下方式管理证书续订和替换:

  • 由您的负载均衡器提供 Amazon Certificate Manager 并部署在您的负载均衡器上的证书可以自动续订。ACM 会尝试在到期之前续订证书。有关更多信息,请参阅 Amazon Certificate Manager 用户指南中的托管续订

  • 如果您将证书导入 ACM,则必须监视证书的到期日期并在到期前续订。有关更多信息,请参阅 Amazon Certificate Manager 用户指南中的导入证书

  • 如果您已将证书导入 IAM 中,则必须创建一个新证书,将该新证书导入 ACM 或 IAM 中,将该新证书添加到负载均衡器,并从负载均衡器删除过期的证书。

安全策略

Elastic Load Balancing 使用一个安全套接字层 (SSL) 协商配置(称为安全策略)在客户端与负载均衡器之间协商 SSL 连接。安全策略是协议和密码的组合。协议在客户端与服务器之间建立安全连接,确保在客户端与负载均衡器之间传递的所有数据都是私密数据。密码是使用加密密钥创建编码消息的加密算法。协议使用多种密码对 Internet 上的数据进行加密。在 连接协商过程中,客户端和负载均衡器会按首选项顺序提供各自支持的密码和协议的列表。默认情况下,会为安全连接选择服务器列表中与任何一个客户端的密码匹配的第一个密码。

注意事项:
  • 应用程序负载均衡器仅支持目标连接的 SSL 重新协商。

  • Application Load Balancer 不支持自定义安全策略。

  • ELBSecurityPolicy-TLS13-1-2-2021-06策略是使用创建的 HTTPS 侦听器的默认安全策略。 Amazon Web Services Management Console

  • ELBSecurityPolicy-2016-08策略是使用创建的 HTTPS 侦听器的默认安全策略。 Amazon CLI

  • 创建 HTTPS 侦听器时,需要选择安全策略。

    • 我们推荐使用ELBSecurityPolicy-TLS13-1-2-2021-06安全策略,该策略包括 TLS 1.3,并且向后兼容 TLS 1.2。

  • 您可以选择用于前端连接的安全策略,但不能选择用于后端连接的安全策略。

    • 对于后端连接,如果您的 HTTPS 侦听器使用的是 TLS 1.3 安全策略,则使用 ELBSecurityPolicy-TLS13-1-0-2021-06 安全策略。否则,ELBSecurityPolicy-2016-08 安全策略用于后端连接。

  • 为了满足要求禁用某些 TLS 协议版本的合规性和安全标准,或者为了支持需要已弃用密码的旧客户端,您可以使用其中一个安全策略。ELBSecurityPolicy-TLS-要查看对 Application Load Balancer 的请求的 TLS 协议版本,请启用负载均衡器的访问日志并检查相应的访问日志条目。有关更多信息,请参阅 App lication Load Balancer 的访问日志

  • 您可以分别使用您 Amazon Web Services 账户 的 IAM 中的 Elastic Load Balancing 条件密钥和服务控制策略 (SCP) 来限制用户可以使用哪些安全策略。 Amazon Organizations 有关更多信息,请参阅《Amazon Organizations 用户指南》中的服务控制策略 (SCP)

TLS 1.3 安全策略

注意

只有全新 EC2 体验才支持应用程序负载均衡器的 TLS 1.3 安全策略。使用旧的 EC2 体验时,无法选择 TLS 1.3 安全策略。

Elastic Load Balancing 为应用程序负载均衡器提供以下 TLS 1.3 安全策略:

  • ELBSecurityPolicy-TLS13-1-2-2021-06(推荐)

  • ELBSecurityPolicy-TLS13-1-2-Res-2021-06

  • ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06

  • ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06

  • ELBSecurityPolicy-TLS13-1-1-2021-06

  • ELBSecurityPolicy-TLS13-1-0-2021-06

  • ELBSecurityPolicy-TLS13-1-3-2021-06

FIPS 安全政策

重要

连接到 Application Load Balancer 的所有安全侦听器都必须使用 FIPS 安全策略或非 FIPS 安全策略;它们不能混用。如果现有的 Application Load Balancer 有两个或更多使用非 FIPS 策略的侦听器,而您希望监听器改用 FIPS 安全策略,请移除所有侦听器,直到只有一个监听器。将侦听器的安全策略更改为 FIPS,然后使用 FIPS 安全策略创建其他侦听器。或者,您可以仅使用 FIPS 安全策略创建带有新侦听器的新 Application Load Balancer。

联邦信息处理标准 (FIPS) 是美国和加拿大政府的一项标准,它规定了保护敏感信息的加密模块的安全要求。要了解更多信息,请参阅Amazon 云安全合规性页面上的联邦信息处理标准 (FIPS) 140

所有 FIPS 策略都使用 AWS-LC FIPS 验证的加密模块。要了解更多信息,请参阅 NIST 加密模块验证计划网站上的 AWS-LC 加密模块页面。

Elastic Load Balancing 为应用程序负载均衡器提供以下 FIPS 安全策略:

  • ELBSecurityPolicy-TLS13-1-3-FIPS-2023-04

  • ELBSecurityPolicy-TLS13-1-2-Res-FIPS-2023-04

  • ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04(推荐)

  • ELBSecurityPolicy-TLS13-1-2-Ext0-FIPS-2023-04

  • ELBSecurityPolicy-TLS13-1-2-Ext1-FIPS-2023-04

  • ELBSecurityPolicy-TLS13-1-2-Ext2-FIPS-2023-04

  • ELBSecurityPolicy-TLS13-1-1-FIPS-2023-04

  • ELBSecurityPolicy-TLS13-1-0-FIPS-2023-04

FS 支持的策略

Elastic Load Balancing 为应用程序负载均衡器提供了以下 FS(向前保密)支持的安全策略:

  • ELBSecurityPolicy-FS-1-2-Res-2020-10

  • ELBSecurityPolicy-FS-1-2-Res-2019-08

  • ELBSecurityPolicy-FS-1-2-2019-08

  • ELBSecurityPolicy-FS-1-1-2019-08

  • ELBSecurityPolicy-FS-2018-06

TLS 1.0-1.2 安全策略

Elastic Load Balancing 为应用程序负载均衡器提供以下 TLS 1.0-1.2 安全策略:

  • ELBSecurityPolicy-TLS-1-2-Ext-2018-06

  • ELBSecurityPolicy-TLS-1-2-2017-01

  • ELBSecurityPolicy-TLS-1-1-2017-01

  • ELBSecurityPolicy-2016-08

  • ELBSecurityPolicy-TLS-1-0-2015-04

  • ELBSecurityPolicy-2015-05(等同于 ELBSecurityPolicy-2016-08

TLS 协议和密码

TLS 1.3

下表描述了可用的 TLS 1.3 安全策略支持的 TLS 协议和密码。

注意:ELBSecurityPolicy-前缀已从安全策略行的策略名称中删除。

示例:安全策略显示ELBSecurityPolicy-TLS13-1-2-2021-06TLS13-1-2-2021-06

安全策略 TLS13-1-2-2021-06* TLS13-1-3-2021-06 TLS13-1-2-Res-2021-06 TLS13-1-2-Ext2-2021-06 TLS13-1-2-Ext1-2021-06 TLS13-1-1-2021-06 TLS13-1-0-2021-06
TLS 协议
Protocol-TLSv1
Protocol-TLSv1.1
Protocol-TLSv1.2
协议-tlsv1.3
TLS 密码
TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
ECDHE-ECDSA-AES128- GCM-SHA256
ECDHE-RSA-AES128- GCM-SHA256
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES128-SHA
ECDHE-ECDSA-AES256- GCM-SHA384
ECDHE-RSA-AES256- GCM-SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
ECDHE-ECDSA-AES256-SHA
AES128-GCM-SHA256
AES128-SHA256
AES128-SHA
AES256-GCM-SHA384
AES256-SHA256
AES256-SHA
使用 CLI 创建使用 TLS 1.3 策略的 HTTPS 侦听器

在任何 TLS 1.3 安全策略中使用 create-listener 命令。

该示例使用ELBSecurityPolicy-TLS13-1-2-2021-06安全策略。

aws elbv2 create-listener --name my-listener \ --protocol HTTPS --port 443 \ --ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06
使用 CLI 修改 HTTPS 侦听器以使用 TLS 1.3 策略

在任何 TLS 1.3 安全策略中使用 m odify-listener 命令。

该示例使用ELBSecurityPolicy-TLS13-1-2-2021-06安全策略。

aws elbv2 modify-listener \ --listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/abcdef01234567890/1234567890abcdef0 \ --ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06
使用 CLI 查看监听器使用的安全策略

将 desc ribe-listener 命令与你的监听器配合使用arn

aws elbv2 describe-listener \ --listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/abcdef01234567890/1234567890abcdef0
使用 CLI 查看 TLS 1.3 安全策略的配置

将该describe-ssl-policies命令与任何 TLS 1.3 安全策略一起使用。

该示例使用ELBSecurityPolicy-TLS13-1-2-2021-06安全策略。

aws elbv2 describe-ssl-policies \ --names ELBSecurityPolicy-TLS13-1-2-2021-06
FIPS
重要

提供策略ELBSecurityPolicy-TLS13-1-1-FIPS-2023-04和仅ELBSecurityPolicy-TLS13-1-0-FIPS-2023-04是为了兼容旧版。虽然他们使用 FIPS140 模块使用 FIPS 加密,但它们可能不符合 NIST 最新的 TLS 配置指南。

下表描述了可用的 FIPS 安全策略支持的 TLS 协议和密码。

注意:ELBSecurityPolicy-前缀已从安全策略行的策略名称中删除。

示例:安全策略显示ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04TLS13-1-2-FIPS-2023-04

安全策略 TLS13-1-3-FIPS-2023-04 TLS13-1-2-Res-FIPS-2023-04 TLS13-1-2-FIPS-2023-04 TLS13-1-2-Ext0-FIPS-2023-04 TLS13-1-2-Ext1-FIPS-2023-04 TLS13-1-2-Ext2-FIPS-2023-04 TLS13-1-1-FIPS-2023-04 TLS13-1-0-FIPS-2023-04
TLS 协议
Protocol-TLSv1
Protocol-TLSv1.1
Protocol-TLSv1.2
协议-tlsv1.3
TLS 密码
TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
ECDHE-ECDSA-AES128- GCM-SHA256
ECDHE-RSA-AES128- GCM-SHA256
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES128-SHA
ECDHE-ECDSA-AES256- GCM-SHA384
ECDHE-RSA-AES256- GCM-SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
ECDHE-ECDSA-AES256-SHA
AES128-GCM-SHA256
AES128-SHA256
AES128-SHA
AES256-GCM-SHA384
AES256-SHA256
AES256-SHA
使用 CLI 创建使用 FIPS 策略的 HTTPS 侦听器

create-listener 命令与任何 FIPS 安全策略一起使用。

该示例使用ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04安全策略。

aws elbv2 create-listener --name my-listener \ --protocol HTTPS --port 443 \ --ssl-policy ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04
使用 CLI 修改 HTTPS 侦听器以使用 FIPS 策略

在任何 F IP S 安全策略中使用 modify-listener 命令。

该示例使用ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04安全策略。

aws elbv2 modify-listener \ --listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/abcdef01234567890/1234567890abcdef0 \ --ssl-policy ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04
使用 CLI 查看监听器使用的安全策略

将 desc ribe-listener 命令与你的监听器配合使用arn

aws elbv2 describe-listener \ --listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/abcdef01234567890/1234567890abcdef0
使用 CLI 查看 FIPS 安全策略的配置

将该describe-ssl-policies命令与任何 FIPS 安全策略一起使用。

该示例使用ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04安全策略。

aws elbv2 describe-ssl-policies \ --names ELBSecurityPolicy-TLS13-1-2-FIPS-2023-04
FS

下表描述了支持的 TLS 协议和可用的 FS 支持的安全策略的密码。

注意:ELBSecurityPolicy-前缀已从安全策略行的策略名称中删除。

示例:安全策略显示ELBSecurityPolicy-FS-2018-06FS-2018-06

安全策略 ELBSecurityPolicy-2016-08 ELBSecurityPolicy-FS-1-2-Res-2020-10 ELBSecurityPolicy-FS-1-2-Res-2019-08 ELBSecurityPolicy-FS-1-2-2019-08 ELBSecurityPolicy-FS-1-1-2019-08 ELBSecurityPolicy-FS-2018-06
TLS 协议
Protocol-TLSv1
Protocol-TLSv1.1
Protocol-TLSv1.2
TLS 密码
ECDHE-ECDSA-AES128- GCM-SHA256
ECDHE-RSA-AES128- GCM-SHA256
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES128-SHA
ECDHE-ECDSA-AES256- GCM-SHA384
ECDHE-RSA-AES256- GCM-SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
ECDHE-ECDSA-AES256-SHA
AES128-GCM-SHA256
AES128-SHA256
AES128-SHA
AES256-GCM-SHA384
AES256-SHA256
AES256-SHA
使用 CLI 创建使用 FS 支持的策略的 HTTPS 侦听器

create-listener 命令与任何 FS 支持的安全策略一起使用。

该示例使用ELBSecurityPolicy-FS-2018-06安全策略。

aws elbv2 create-listener --name my-listener \ --protocol HTTPS --port 443 \ --ssl-policy ELBSecurityPolicy-FS-2018-06
使用 CLI 修改 HTTPS 侦听器以使用 FS 支持的策略

将 m odify-listener 命令与任何 FS 支持的安全策略一起使用。

该示例使用ELBSecurityPolicy-FS-2018-06安全策略。

aws elbv2 modify-listener \ --listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/abcdef01234567890/1234567890abcdef0 \ --ssl-policy ELBSecurityPolicy-FS-2018-06
使用 CLI 查看监听器使用的安全策略

将 desc ribe-listener 命令与你的监听器配合使用arn

aws elbv2 describe-listener \ --listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/abcdef01234567890/1234567890abcdef0
使用 CLI 查看 FS 支持的安全策略的配置

将该describe-ssl-policies命令与任何 FS 支持的安全策略一起使用。

该示例使用ELBSecurityPolicy-FS-2018-06安全策略。

aws elbv2 describe-ssl-policies \ --names ELBSecurityPolicy-FS-2018-06
TLS 1.0 - 1.2

下表描述了可用的 TLS 1.0-1.2 安全策略支持的 TLS 协议和密码。

注意:ELBSecurityPolicy-前缀已从安全策略行的策略名称中删除。

示例:安全策略显示ELBSecurityPolicy-TLS-1-2-Ext-2018-06TLS-1-2-Ext-2018-06

安全策略 ELBSecurityPolicy-2016-08 ELBSecurityPolicy-TLS-1-2-Ext-2018-06 ELBSecurityPolicy-TLS-1-2-2017-01 ELBSecurityPolicy-TSL-1-1-2017-01 ELBSecurityPolicy-TLS-1-0-2015-04
TLS 协议
Protocol-TLSv1
Protocol-TLSv1.1
Protocol-TLSv1.2
TLS 密码
ECDHE-ECDSA-AES128- GCM-SHA256
ECDHE-RSA-AES128- GCM-SHA256
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES128-SHA
ECDHE-ECDSA-AES256- GCM-SHA384
ECDHE-RSA-AES256- GCM-SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
ECDHE-ECDSA-AES256-SHA
AES128-GCM-SHA256
AES128-SHA256
AES128-SHA
AES256-GCM-SHA384
AES256-SHA256
AES256-SHA
DES-CBC3-SHA

* 除非您必须支持需要 DES-CBC3-SHA 密码(这是一种弱密码)的旧客户端,否则请勿使用此策略。

使用 CLI 创建使用 TLS 1.0-1.2 策略的 HTTPS 侦听器

create-listener 命令与任何 TLS 1.0-1.2 支持的安全策略一起使用。

该示例使用ELBSecurityPolicy-2016-08安全策略。

aws elbv2 create-listener --name my-listener \ --protocol HTTPS --port 443 \ --ssl-policy ELBSecurityPolicy-2016-08
使用 CLI 修改 HTTPS 侦听器以使用 TLS 1.0-1.2 策略

将 m odify-listener 命令与任何 TLS 1.0-1.2 支持的安全策略一起使用。

该示例使用ELBSecurityPolicy-2016-08安全策略。

aws elbv2 modify-listener \ --listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/abcdef01234567890/1234567890abcdef0 \ --ssl-policy ELBSecurityPolicy-2016-08
使用 CLI 查看监听器使用的安全策略

将 desc ribe-listener 命令与你的监听器配合使用arn

aws elbv2 describe-listener \ --listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/my-load-balancer/abcdef01234567890/1234567890abcdef0
使用 CLI 查看 TLS 1.0-1.2 安全策略的配置

将该describe-ssl-policies命令与任何 TLS 1.0-1.2 支持的安全策略一起使用。

该示例使用ELBSecurityPolicy-2016-08安全策略。

aws elbv2 describe-ssl-policies \ --names ELBSecurityPolicy-2016-08

添加 HTTPS 侦听器

您为侦听器配置用于从客户端连接到负载均衡器的协议和端口,并为默认侦听器规则配置目标组。有关更多信息,请参阅 侦听器配置

先决条件
  • 要创建 HTTPS 侦听器,您必须指定证书和安全策略。负载均衡器先使用证书终止连接,然后解密来自客户端的请求,最后再将请求路由到目标。负载均衡器在协商与客户端的 SSL 连接时会使用安全策略。

  • 要将转发操作添加到默认侦听器规则,您必须指定可用的目标组。有关更多信息,请参阅 创建目标组

  • 您可以在多个侦听器中指定同一个目标组,但这些侦听器必须属于同一个负载均衡器。要将目标组与负载均衡器结合使用,您必须确认其没有被任何其他负载均衡器的侦听器使用。

New EC2 experience
使用控制台添加 HTTPS 侦听器
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择负载均衡器

  3. 选择负载均衡器。

  4. 侦听器和规则选项卡上,选择添加侦听器

  5. 对于协议:端口,选择 HTTPS 并保留默认端口或者输入其他端口。

  6. (可选)要启用身份验证,请在身份验证下选择使用 OpenID 或 Amazon Cognito,并提供所请求的信息。有关更多信息,请参阅 使用 Application Load Balancer 验证用户身份

  7. 对于 Default actions (默认操作),请执行下列操作之一:

    • 转发给目标组 – 选择一个或多个要将流量转发到其中的目标组。要添加目标组,请选择添加目标组。如果使用多个目标组,请为每个目标组选择权重并查看相关联的百分比。如果已对一个或多个目标组启用粘性,则必须在规则上启用组级粘性。

    • 重定向到 URL – 指定客户端请求将重定向到的 URL。可以通过如下方式完成此操作:在 URI 部分选项卡上分别输入每个部分,或者在完整 URL 选项卡上输入完整的地址。对于状态代码,您可以将重定向配置为临时(HTTP 302)或永久(HTTP 301)。

    • 返回固定响应 – 指定将返回到已删除客户端请求的响应代码。此外,您以指定内容类型响应正文,但它们不是必需的。

  8. 对于安全策略,建议您始终使用最新的预定义安全策略。

  9. 对于默认 SSL/TLS 证书,以下选项可用:

    • 如果您使用创建或导入了证书 Amazon Certificate Manager,请选择来自 ACM,然后从 “选择证书” 中选择证书

    • 如果使用 IAM 导入了证书,请选择从 IAM,然后在选择证书中选择该证书。

    • 如果您有要导入的证书,但您所在的区域不提供 ACM,请选择导入,然后选择到 IAM。在证书名称字段中输入证书的名称。在证书私有密钥中,复制并粘贴私有密钥文件(PEM 编码的文件)的内容。在证书正文中,复制并粘贴公有密钥证书文件(PEM 编码的文件)的内容。在 Certificate Chain 中,复制并粘贴证书链文件(PEM 编码的文件)的内容,除非您使用的是自签名证书并且浏览器是否隐式接受证书并不重要。

  10. (可选)要启用相互身份验证,请在客户端证书处理下启用相互身份验证 (mTLS)

    启用后,默认的双向 TLS 模式为直通

    如果您选择 “使用信任存储进行验证”:

    • 默认情况下,客户端证书已过期的连接将被拒绝。要更改此行为,请展开 “高级 mTLS 设置”,然后在 “客户证书到期” 下选择 “允许过期的客户证书”。

    • Trust Store 下,选择现有的信任存储,或选择 “新建信任存储”。

      • 如果您选择 “新建信任存储”,请提供信任存储名称S3 URI 证书颁发机构位置以及(可选)S 3 URI 证书吊销列表位置

  11. 选择保存

Old EC2 experience
使用控制台添加 HTTPS 侦听器
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择负载均衡器

  3. 选择负载均衡器。

  4. Listeners(侦听器)选项卡上,选择 Add listener(添加侦听器)。

  5. 对于协议:端口,选择 HTTPS 并保留默认端口或者输入其他端口。

  6. (可选)要验证用户的身份,对于 Default actions (默认操作),选择 Add action (添加操作)Authenticate (身份验证) 并提供请求的信息。有关更多信息,请参阅 使用 Application Load Balancer 验证用户身份

  7. 对于 Default actions (默认操作),请执行下列操作之一:

    • 选择转发,然后选择目标组。

    • 选择重定向,然后提供 URL 和状态代码。有关更多信息,请参阅 重定向操作

    • 选择返回固定响应,然后提供响应代码、可选的身份提供者和可选的响应正文。有关更多信息,请参阅 固定响应操作

  8. 对于 Security policy,我们建议保留控制台推荐安全策略。

  9. 对于默认 SSL/TLS 证书,请执行以下操作之一:

    • 如果您使用创建或导入了证书 Amazon Certificate Manager,请选择 From ACM 并选择证书。

    • 如果使用 IAM 上传了证书,则选择从 IAM 并选择证书。

  10. 选择 添加

  11. (可选) 要定义基于路径模式或主机名转发请求的其他侦听器规则,请参阅添加规则

  12. (可选)要添加用于 SNI 协议的证书列表,请参阅 将证书添加到证书列表

要添加 HTTPS 侦听器,请使用 Amazon CLI

使用 create-listener 命令可创建侦听器和默认规则,使用 create-rule 命令可定义更多侦听器规则。