Elastic Load Balancing
传统负载均衡器
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

为您的传统负载均衡器配置 HTTPS 侦听器

侦听器是用于检查连接请求的进程。使用前端 (客户端到负载均衡器) 连接的协议和端口与后端 (负载均衡器到实例) 连接的协议和端口配置侦听器。有关 Elastic Load Balancing 支持的端口、协议和侦听器配置的信息,请参阅传统负载均衡器的侦听器

如果您的负载均衡器具有接受端口 80 上的 HTTP 请求的侦听器,则可以添加接受端口 443 上的 HTTPS 请求的侦听器。如果指定 HTTPS 侦听器将请求发送到端口 80 上的实例,则负载均衡器将终止 SSL 请求,并且不加密从负载均衡器到实例的通信。如果 HTTPS 侦听器将请求发送到端口 443 上的实例,则对从负载均衡器到实例的通信进行加密。

如果负载均衡器使用加密连接与实例通信,您可以选择启用实例身份验证。这可确保只有在实例的公钥与您出于通信目的为负载均衡器指定的密钥匹配时,负载均衡器才与实例通信。

有关创建新的 HTTPS 侦听器的信息,请参阅创建带有 HTTPS 侦听器的传统负载均衡器

先决条件

若要为 HTTPS 侦听器启用 HTTPS 支持,您必须在负载均衡器上部署 SSL 服务器证书。负载均衡器会在将请求发送到实例之前,使用证书终止并解密请求。如果您没有 SSL 证书,您可以创建一个。有关更多信息,请参阅 Classic Load Balancer 的 SSL/TLS 证书

使用控制台添加 HTTPS 侦听器

您可以将 HTTPS 侦听器添加到现有负载均衡器。

向您的负载均衡器添加 HTTPS 侦听器

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

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

  3. 选择您的负载均衡器。

  4. Listeners 选项卡上,选择 Edit

  5. Edit listeners 页面上,选择 Add

  6. 对于 Load Balancer Protocol,选择 HTTPS (Secure HTTP)。此操作会更新 Load Balancer PortInstance ProtocolInstance Port

    重要

    默认情况下,实例协议为 HTTP。如果要设置后端实例身份验证,请将实例协议更改为 HTTPS (安全 HTTP)。此操作也会更新实例端口。

  7. 对于 Cipher,选择 Change。验证 Predefined Security Policy 是否已选中且设置为 ELBSecurityPolicy-2016-08。建议您始终使用最新的预定义安全策略。如果您需要使用其他预定义安全策略或创建自定义策略,请参阅更新 SSL 协商配置

  8. 如果已在负载均衡器上部署证书并希望继续使用该证书,则可跳过此步骤。

    对于 SSL Certificate,选择 Change,然后执行下列操作之一:

    • 如果使用 AWS Certificate Manager 创建或导入了证书,请选择 Choose an existing certificate from AWS Certificate Manager (ACM),然后从 Certificate 中选择证书,再选择 Save

      注意

      此选项只能在支持 AWS Certificate Manager 的区域可用。

    • 如果使用 IAM 导入了证书,请选择 Choose an existing certificate from AWS Identity and Access Management (IAM),从 Certificate 中选择证书,然后选择 Save

    • 如果要导入 SSL 证书,但该区域不支持 ACM,请选择 Upload a new SSL Certificate to AWS Identity and Access Management (IAM)。输入证书的名称。在 Private Key 中,复制并粘贴私钥文件 (PEM 编码的文件) 的内容。在 Public Key Certificate 中,复制并粘贴公钥证书文件 (PEM 编码的文件) 的内容。在 Certificate Chain 中,复制并粘贴证书链文件 (PEM 编码的文件) 的内容,除非您使用的是自签名证书并且浏览器是否隐式接受证书并不重要。

  9. (可选) 选择 Add 以添加其他侦听器。

  10. 选择 Save 以添加刚才配置的侦听器。

  11. (可选) 要为现有负载均衡器设置后端实例身份验证,您必须使用 AWS CLI 或 API,因为使用控制台时不支持此任务。有关更多信息,请参阅配置后端实例身份验证

使用 AWS CLI 添加 HTTPS 侦听器

您可以将 HTTPS 侦听器添加到现有负载均衡器。

使用 AWS CLI 向您的负载均衡器添加 HTTPS 侦听器

  1. 获取 SSL 证书的 Amazon 资源名称 (ARN)。例如:

    ACM

    arn:aws-cn:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

    IAM

    arn:aws-cn:iam::123456789012:server-certificate/my-server-certificate
  2. 使用以下 create-load-balancer-listeners 命令向负载均衡器中添加一个侦听器,此侦听器接受端口 443 上的 HTTPS 请求并使用 HTTP 将请求发送到端口 80 上的实例:

    aws elb create-load-balancer-listeners --load-balancer-name my-load-balancer --listeners Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=ARN

    如果要设置后端实例身份验证,请使用以下命令添加一个侦听器,此侦听器接受端口 443 上的 HTTPS 请求并使用 HTTPS 将请求发送到端口 443 上的实例:

    aws elb create-load-balancer-listeners --load-balancer-name my-load-balancer --listeners Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTPS,InstancePort=443,SSLCertificateId=ARN
  3. (可选) 您可使用以下 describe-load-balancers 命令查看负载均衡器的更新后的详细信息:

    aws elb describe-load-balancers --load-balancer-name my-load-balancer

    以下为响应示例:

    { "LoadBalancerDescriptions": [ { ... "ListenerDescriptions": [ { "Listener": { "InstancePort": 80, "SSLCertificateId": "ARN", "LoadBalancerPort": 443, "Protocol": "HTTPS", "InstanceProtocol": "HTTP" }, "PolicyNames": [ "ELBSecurityPolicy-2016-08" ] }, { "Listener": { "InstancePort": 80, "LoadBalancerPort": 80, "Protocol": "HTTP", "InstanceProtocol": "HTTP" }, "PolicyNames": [] } ], ... } ] }
  4. (可选) 您的 HTTPS 侦听器是使用默认安全策略创建的。如果要指定其他预定义安全策略或自定义安全策略,请使用 create-load-balancer-policyset-load-balancer-policies-of-listener 命令。有关更多信息,请参阅 使用 AWS CLI 更新 SSL 协商配置

  5. (可选) 要设置后端实例身份验证,请使用 set-load-balancer-policies-for-backend-server 命令。有关更多信息,请参阅配置后端实例身份验证