TLS listeners for your Network Load Balancer - Elastic Load Balancing
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

TLS listeners for your Network Load Balancer

要使用 TLS 侦听器,您必须在负载均衡器上部署至少一个服务器证书。负载均衡器先使用此服务器证书终止前端连接,再解密来自客户端的请求,然后将请求发送到目标。

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

Network Load Balancer 不支持 TLS 重新协商。

要创建 TLS 侦听器,请参阅Add a listener。要查看相关演示,请参阅 网络负载均衡器 上的 TLS 支持以及 网络负载均衡器 上的 SNI 支持

Server certificates

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

在创建用于负载均衡器的证书时,您必须指定域名。

我们建议您使用 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 用户指南.

重要

您无法在网络负载均衡器上安装具有大于 2048 位的 RSA 密钥或 EC 密钥的证书。

Default certificate

创建 TLS 侦听器时,必须仅指定一个证书。此证书被称为 default certificate。您可以在创建TLS侦听程序之后替换默认证书。有关更多信息,请参阅 Replace the default certificate。)

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

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

Certificate list

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

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

  • Public key algorithm (prefer ECDSA over RSA)

  • Hashing algorithm (prefer SHA over MD5)

  • Key length (prefer the largest)

  • Validity period

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

Certificate renewal

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

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

  • Certificates provided by AWS Certificate Manager and deployed on your load balancer can be renewed automatically. ACM attempts to renew certificates before they expire. For more information, see Managed renewal in the AWS Certificate Manager 用户指南.

  • If you imported a certificate into ACM, you must monitor the expiration date of the certificate and renew it before it expires. For more information, see Importing certificates in the AWS Certificate Manager 用户指南.

  • If you imported a certificate into IAM, you must create a new certificate, import the new certificate to ACM or IAM, add the new certificate to your load balancer, and remove the expired certificate from your load balancer.

Security policies

创建 TLS 侦听器时,您必须选择一个安全策略。可以根据需要更新安全策略。有关更多信息,请参阅 Update the security policy。)

您可以选择用于前端连接的安全策略。ELBSecurityPolicy-2016-08 安全策略始终用于后端连接。Network Load Balancer不支持自定义安全策略。

Elastic Load Balancing 为Network Load Balancer提供以下安全策略:

  • ELBSecurityPolicy-2016-08 (default)

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

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

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

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

  • ELBSecurityPolicy-FS-2018-06

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

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

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

  • ELBSecurityPolicy-2015-05 (identical to ELBSecurityPolicy-2016-08)

我们建议使用 ELBSecurityPolicy-2016-08 策略以确保兼容性。如果您需要向前保密 (FS),可使用 ELBSecurityPolicy-FS 策略之一。您可以使用 ELBSecurityPolicy-TLS 策略之一,以满足需要禁用特定 TLS 协议版本的合规性和安全标准,或者支持需要已弃用密码的旧客户端。只有一小部分 Internet 客户端需要 TLS 版本 1.0。要查看针对负载均衡器的请求的 TLS 协议版本,请为负载均衡器启用访问日志记录并查看访问日志。有关更多信息,请参阅访问日志

下表描述了默认策略和 ELBSecurityPolicy-TLS 策略。

安全策略 默认值: TLS 1.0 † TLS 1.1 TLS 1.2 TLS 1.2 扩展
TLS Protocols

Protocol-TLSv1

Protocol-TLSv1.1

Protocol-TLSv1.2

TLS Ciphers

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 密码(这是一种弱密码)的旧客户端,否则请勿使用此策略。

下表描述了默认策略和 ELBSecurityPolicy-FS 策略。

安全策略 默认值: FS FS 1.1 FS 1.2 FS 1.2 Res
TLS Protocols

Protocol-TLSv1

Protocol-TLSv1.1

Protocol-TLSv1.2

TLS Ciphers

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

要使用 AWS CLI 查看负载均衡器的安全策略的配置,请使用 describe-ssl-policies 命令。

ALPN policies

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

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

Requirements

  • TLS listener

  • TLS target group

支持的 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

不协商 PN。(这是默认值。)

启用 ALPN 连接

您可以在创建或修改 TLS 侦听器时启用 ALPN 连接。有关更多信息,请参阅 Add a listenerUpdate the ALPN policy