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

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

为您的经典负载均衡器配置 HTTPS 侦听器

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

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

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

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

前提条件

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

使用控制台添加 HTTPS 侦听器

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

New EC2 experience
向您的负载均衡器添加 HTTPS 侦听器
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 Load Balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。

  3. 选择负载均衡器的名称以打开其详细信息页面。

  4. 侦听器选项卡上,选择管理侦听器

  5. 管理侦听器页面的侦听器部分中,选择添加侦听器

  6. 对于侦听器协议,选择 HTTPS

    重要

    默认情况下,实例协议为 HTTP。如果要设置后端实例身份验证,请将实例协议更改为 HTTPS。

  7. 对于安全策略,将会选择推荐的默认值 ELBSecurityPolicy-2016-08。建议您始终使用最新的预定义安全策略。如果您需要使用其他预定义安全策略或创建自定义策略,请参阅更新 SSL 协商配置

  8. 对于默认 SSL 证书,请选择编辑,然后执行以下操作之一:

    • 如果使用 Amazon Certificate Manager 创建或导入了证书,请选择从 ACM 并从列表中选择该证书,然后选择保存更改

      注意

      此选项只在支持 的区域中可用Amazon Certificate Manager

    • 如果使用 IAM 导入了证书,请选择从 IAM 并从列表中选择该证书,然后选择保存更改

    • 如果您有 SSL 证书要导入到 ACM,请选择导入到 ACM。在证书私有密钥中,复制并粘贴 PEM 编码的私有密钥文件的内容。在证书正文中,复制并粘贴 PEM 编码的公有密钥证书文件的内容。在证书链 – 可选中,复制并粘贴 PEM 编码的证书链文件的内容,除非您使用的是自行签名的证书并且浏览器是否隐式接受证书并不重要。

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

    • 选择保存更改

  9. 对于 Cookie 粘性,默认设置为已禁用。要更改此设置,请选择编辑。如果选择由负载均衡器生成,则必须指定一个有效期。如果选择由应用程序生成,则必须指定一个 Cookie 名称。完成选择后,选择保存更改

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

  11. 选择保存更改以添加您刚才配置的侦听器。

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

Old EC2 experience
向您的负载均衡器添加 HTTPS 侦听器
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/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。验证预定义的安全策略是否已选中且设置为 ELBSecurityPolicy-2016-08。建议您始终使用最新的预定义安全策略。如果您需要使用其他预定义安全策略或创建自定义策略,请参阅更新 SSL 协商配置

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

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

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

      注意

      此选项只在支持 的区域中可用Amazon Certificate Manager

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

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

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

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

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

使用 Amazon CLI 添加 HTTPS 侦听器

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

使用 Amazon CLI 向您的负载均衡器添加 HTTPS 侦听器
  1. 获取 SSL 证书的 Amazon Resource Name (ARN)。例如:

    ACM

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

    IAM

    arn:aws: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 命令。有关更多信息,请参阅 使用 Amazon CLI 更新 SSL 协商配置

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