TLS你的 Network Load Balancer 的监听器 - Elastic Load Balancing

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

TLS你的 Network Load Balancer 的监听器

要使用TLS侦听器,您必须在负载均衡器上部署至少一个服务器证书。负载均衡器先使用此服务器证书终止前端连接,再解密来自客户端的请求,然后将请求发送到目标。请注意,如果您需要在不由负载均衡器解密的情况下将加密流量传递到目标,请在端口 443 上创建TCP侦听器,而不是创建侦听器。TLS负载均衡器将按原样将请求传输至目标,而不解密请求。

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

网络负载均衡器不支持TLS重新协商或相互TLS身份验证 (mTLS)。要获得TLS支持,请创建TCP监听器而不是监TLS听器。负载均衡器按原样传递请求,因此您可以在目标TLS上实现 m。

要创建TLS监听器,请参阅添加侦听器。有关相关演示,请参阅 TLSNetwork Load B alancer SNI支持和网络负载均衡器支持。

服务器证书

负载均衡器需要 X.509 证书(服务器证书)。证书是由证书颁发机构 (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(主题替代名称)扩展中。有关公有证书的更多信息,请参阅《AWS Certificate Manager 用户指南》中的 请求公有证书

我们建议您使用 AWS Certificate Manager (ACM) 为负载均衡器创建证书。ACM与 Elastic Load Balancing 集成,因此您可以在负载均衡器上部署证书。有关更多信息,请参阅 用户指南。AWS Certificate Manager

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

支持的密钥算法

  • RSA1024 位

  • RSA2048 位

  • RSA3072 位

  • ECDSA256 位

  • ECDSA384 位

  • ECDSA521 位

默认证书

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

如果您在证书列表中指定了其他证书,则只有在客户端连接时未使用服务器名称指示 (SNI) 协议指定主机名或者证书列表中没有匹配的证书时,才会使用默认证书。

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

证书列表

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

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

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

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

  • 有效期

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

证书续订

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

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

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

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

  • 如果您将证书导入到IAM,则必须创建新证书,将新证书导入ACM或IAM,将新证书添加到您的负载均衡器,然后从负载均衡器中移除过期的证书。

安全策略

创建TLS监听器时,必须选择安全策略。可以根据需要更新安全策略。有关更多信息,请参阅 更新安全策略

注意事项:
  • ELBSecurityPolicy-TLS13-1-2-2021-06策略是使用创建的TLS监听器的默认安全策略。 AWS Management Console

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

  • ELBSecurityPolicy-2016-08策略是使用创建的TLS监听器的默认安全策略。 AWS CLI

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

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

  • 为了满足需要禁用某些TLS协议版本的合规性和安全标准,或者为了支持需要已弃用密码的旧客户端,您可以使用其中一个安全策略。ELBSecurityPolicy-TLS-您可以启用访问日志,以获取有关发送到 Network Load Balancer 的TLS请求的信息,分析TLS流量模式,管理安全策略升级,并对问题进行故障排除。为您的负载均衡器启用访问日志记录并检查相应的访问日志条目。有关更多信息,请参阅访问日志Network Load Balancer 示例查询

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

TLS1.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安全策略

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

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

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

TLS1.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

安全策略
TLS协议
协议-TLSv1
协议-TLSv1 .1
协议-TLSv1 .2
协议-TLSv1 .3
TLS密码
TLS_ AES _128 GCM _ SHA256
TLS_ AES _256 GCM _ _ SHA384
TLS_ CHACHA2 0_ 05_ POLY13 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
要创建使用 TLS 1.3 策略的TLS侦听器,请使用 CLI

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

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

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

在任何 TLS1.3 安全策略中使用 modify-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
要查看 TLS 1.3 安全策略的配置,请使用 CLI

将该describe-ssl-policies命令与任何 TLS1.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是为了兼容旧版。虽然他们使用 FIPS14 0 模块使用FIPS加密技术,但它们可能不符合最新的TLS配置NIST指南。

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

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

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

安全策略
TLS协议
协议-TLSv1
协议-TLSv1 .1
协议-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
要创建使用FIPS策略的TLS监听器,请使用 CLI

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

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

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

在任何FIPS安全策略中使用 m odify-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
要查看FIPS安全策略的配置,请使用 CLI

将该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

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

注意: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协议
协议-TLSv1
协议-TLSv1 .1
协议-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
要创建使用 FS 支持的策略的TLS侦听器,请使用 CLI

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

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

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

将 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
要查看 FS 支持的安全策略的配置,请使用 CLI

将该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协议
协议-TLSv1
协议-TLSv1 .1
协议-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密码,否则请勿使用此策略。

要创建使用 TLS 1.0-1.2 策略的TLS侦听器,请使用 CLI

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

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

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

将 m odify-listener 命令与任何 TLS1.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
要查看 TLS 1.0-1.2 安全策略的配置,请使用 CLI

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

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

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

ALPN政策

应用层协议协商 (ALPN) 是在初始TLS握手问候消息上发送的TLS扩展。ALPN使应用层能够通过安全连接(例如 HTTP /1 和 HTTP /2)协商应使用哪些协议。

当客户端启动ALPN连接时,负载均衡器会将客户端ALPN首选项列表与其ALPN策略进行比较。如果客户端支持ALPN策略中的协议,则负载均衡器将根据该ALPN策略的首选项列表建立连接。否则,负载均衡器将不使用ALPN。

支持的ALPN策略

以下是支持的ALPN策略:

HTTP1Only

仅限谈判 HTTP /1. *. ALPN首选项列表是 http/1.1、http/1.0。

HTTP2Only

仅限谈判 HTTP /2. 首ALPN选项列表为 h2。

HTTP2Optional

首选 HTTP /1. * 而不是 HTTP /2(这可能对于 HTTP /2 测试很有用)。ALPN首选项列表是 http/1.1、http/1.0、h2。

HTTP2Preferred

首选 HTTP /2 而不是 HTTP /1. *。ALPN首选项列表是 h2、http/1.1、http/1.0。

None

不要谈判ALPN。这是默认模式。

启用ALPN连接

您可以在创建或修改TLS监听器时启用ALPN连接。有关更多信息,请参阅添加侦听器更新ALPN政策