为您的经典负载均衡器配置 HTTPS 侦听器
侦听器是用于检查连接请求的进程。使用前端 (客户端到负载均衡器) 连接的协议和端口与后端 (负载均衡器到实例) 连接的协议和端口配置侦听器。有关 Elastic Load Balancing 支持的端口、协议和侦听器配置的信息,请参阅经典负载均衡器的侦听器。
如果您的负载均衡器具有接受端口 80 上的 HTTP 请求的侦听器,则可以添加接受端口 443 上的 HTTPS 请求的侦听器。如果指定 HTTPS 侦听器将请求发送到端口 80 上的实例,则负载均衡器将终止 SSL 请求,并且不加密从负载均衡器到实例的通信。如果 HTTPS 侦听器将请求发送到端口 443 上的实例,则对从负载均衡器到实例的通信进行加密。
如果负载均衡器使用加密连接与实例通信,您可以选择启用实例身份验证。这可确保只有在实例的公钥与您出于通信目的为负载均衡器指定的密钥匹配时,负载均衡器才与实例通信。
有关创建新的 HTTPS 侦听器的信息,请参阅创建带有 HTTPS 侦听器的经典负载均衡器。
先决条件
若要为 HTTPS 侦听器启用 HTTPS 支持,您必须在负载均衡器上部署 SSL 服务器证书。负载均衡器会在将请求发送到实例之前,使用证书终止并解密请求。如果您没有 SSL 证书,您可以创建一个。有关更多信息,请参阅 经典负载均衡器的 SSL/TLS 证书。
使用控制台添加 HTTPS 侦听器
您可以将 HTTPS 监听器添加到现有负载均衡器。
向您的负载均衡器添加 HTTPS 侦听器
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格上的 Load Balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。
-
选择您的负载均衡器。
-
在 Listeners 选项卡上,选择 Edit。
-
在 Edit listeners 页面上,选择 Add。
-
对于 Load Balancer Protocol,选择 HTTPS (Secure HTTP)。此操作会更新 Load Balancer Port、Instance Protocol 和 Instance Port。
重要
默认情况下,实例协议为 HTTP。如果要设置后端实例身份验证,请将实例协议更改为 HTTPS (安全 HTTP)。此操作也会更新实例端口。
-
对于 Cipher,选择 Change。验证预定义的安全策略是否已选中且设置为 ELBSecurityPolicy-2016-08。建议您始终使用最新的预定义安全策略。如果您需要使用其他预定义安全策略或创建自定义策略,请参阅更新 SSL 协商配置。
-
如果已在负载均衡器上部署证书并希望继续使用该证书,则可跳过此步骤。
对于 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 编码的文件)的内容,除非您使用的是自签名证书并且浏览器是否隐式接受证书并不重要。
-
-
(可选) 选择 Add 以添加其他侦听器。
-
选择 Save 以添加刚才配置的侦听器。
-
(可选) 要为现有负载均衡器设置后端实例身份验证,您必须使用 Amazon CLI 或 API,因为使用控制台时不支持此任务。有关更多信息,请参阅配置后端实例身份验证。
使用 Amazon CLI 添加 HTTPS 侦听器
您可以将 HTTPS 监听器添加到现有负载均衡器。
使用 Amazon CLI 向您的负载均衡器添加 HTTPS 侦听器
-
获取 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
-
使用以下 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
-
(可选)您可使用以下 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": [] } ], ... } ] } -
(可选) 您的 HTTPS 侦听器是使用默认安全策略创建的。如果要指定其他预定义安全策略或自定义安全策略,请使用 create-load-balancer-policy 和 set-load-balancer-policies-of-listener 命令。有关更多信息,请参阅 使用 Amazon CLI 更新 SSL 协商配置。
-
(可选)要设置后端实例身份验证,请使用 set-load-balancer-policies-for-backend-server 命令。有关更多信息,请参阅配置后端实例身份验证。