为您的 Classic HTTPS Load Balancer 配置侦听器 - Elastic Load Balancing

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

为您的 Classic HTTPS Load Balancer 配置侦听器

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

如果您的负载均衡器带有接受端口 80 上HTTP请求的侦听器,则可以添加一个在端口 443 上接受HTTPS请求的监听器。如果您指定HTTPS监听器通过端口 80 向实例发送请求,则负载均衡器会终止SSL请求,并且不会加密从负载均衡器到实例的通信。如果HTTPS侦听器通过端口 443 向实例发送请求,则会加密从负载均衡器到实例的通信。

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

有关创建新HTTPS监听器的信息,请参见使用HTTPS侦听器创建 Classic Load Balancer

先决条件

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

使用控制台添加HTTPS监听器

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

使用控制台向负载均衡器添加HTTPS侦听器
  1. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的负载均衡下,选择负载均衡器

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

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

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

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

    重要

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

  7. 对于安全策略,我们建议您使用最新的预定义安全策略。如果您需要使用不同的预定义安全策略或创建自定义策略,请参阅更新SSL协商配置

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

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

      注意

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

    • 如果您使用导入证书IAM,请选择 “”IAM,从列表中选择证书,然后选择 “保存更改”。

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

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

    • 选择 Save changes(保存更改)

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

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

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

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

使用添加HTTPS监听器 AWS CLI

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

要向您的负载均衡器添加HTTPS侦听器,请使用 AWS CLI
  1. 获取SSL证书的 Amazon 资源名称 (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请求,并使用以下命令将请求发送到端口 443 上的实例:HTTPS

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

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