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

Application Load Balancer 的 HTTPS 侦听器

您可以创建使用加密连接的侦听器 (也称为 SSL 卸载)。此功能支持在您的负载均衡器与启动 SSL 或 TLS 会话的客户端之间进行流量加密。

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

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

对于客户端连接或目标连接,Application Load Balancer 不支持 SSL 重新协商。

SSL 证书

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

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

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

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

重要

您无法通过与 ACM 集成在负载均衡器上安装带有 4096 位 RSA 密钥或 EC 密钥的证书。您必须将带有 4096 位 RSA 密钥或 EC 密钥的证书上传到 IAM,以便将它们与负载均衡器结合使用。

创建 HTTPS 侦听器时,必须指定默认证书。您可以通过添加更多证书来为侦听器创建可选证书列表。这使负载均衡器能够在同一端口上支持多个域并为每个域提供一个不同的证书。默认情况下,侦听器的默认证书不会添加到证书列表中。有关更多信息,请参阅更新服务器证书

客户端可以使用服务器名称指示 (SNI) 协议扩展来指定其尝试连接的主机名。如果此主机名与证书列表中的证书不匹配,则负载均衡器将选择默认证书。如果此主机名与证书列表中的一个证书匹配,则负载均衡器将选择此证书。如果客户端提供的主机名与证书列表中的多个证书匹配,则负载均衡器将选择客户端可支持的最佳证书。根据以下标准,按下面的顺序选择证书:

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

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

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

  • 有效期

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

安全策略

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

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

  • ELBSecurityPolicy-2016-08

  • ELBSecurityPolicy-FS-2018-06

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

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

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

  • ELBSecurityPolicy-2015-05

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

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

下表描述了为 Application Load Balancer 定义的安全策略。

安全策略 2016-08 * FS-2018-06 TLS-1-2 TLS-1-2-Ext TLS-1-1 TLS-1-0 †
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

* Application Load Balancer 的 ELBSecurityPolicy-2016-08ELBSecurityPolicy-2015-05 安全策略是相同的。

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

要使用 AWS CLI 查看 Application Load Balancer 安全策略的配置,请使用 describe-ssl-policies 命令。

更新安全策略

在创建 HTTPS 侦听器时,您可以选择满足您的需求的安全策略。添加新的安全策略后,您可以将 HTTPS 侦听器更新为使用此新安全策略。Application Load Balancer 不支持自定义安全策略。

使用控制台更新安全策略

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器,然后选择 Listeners

  4. 选中 HTTPS 侦听器对应的复选框,然后选择 Edit (编辑)

  5. 对于 Security policy (安全策略),选择安全策略。

  6. 选择 Update

使用 AWS CLI 更新安全策略

使用 modify-listener 命令。