

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

# 为您的经典负载均衡器配置 HTTPS 侦听器
<a name="elb-add-or-delete-listeners"></a>

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

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

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

有关创建新的 HTTPS 侦听器的信息，请参阅[创建带有 HTTPS 侦听器的经典负载均衡器](elb-create-https-ssl-load-balancer.md)。

**Topics**
+ [前提条件](#add-listener-prerequisites)
+ [使用控制台添加 HTTPS 侦听器](#add-listener-console)
+ [使用添加 HTTPS 监听器 Amazon CLI](#add-listener-cli)

## 前提条件
<a name="add-listener-prerequisites"></a>

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

## 使用控制台添加 HTTPS 侦听器
<a name="add-listener-console"></a>

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

**使用控制台向负载均衡器添加 HTTPS 侦听器**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.amazonaws.cn/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格上的 **Load Balancing**（负载均衡）下，选择 **Load Balancers**（负载均衡器）。

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

1. 在**侦听器**选项卡上，选择**管理侦听器**。

1. 在**管理侦听器**页面的**侦听器**部分中，选择**添加侦听器**。

1. 对于**侦听器协议**，选择 **HTTPS**。
**重要**  
默认情况下，**实例协议**为 HTTP。如果要设置后端实例身份验证，请将**实例协议**更改为 HTTPS。

1. 对于**安全策略**，建议您使用最新的预定义安全策略。如果您需要使用其他预定义安全策略或创建自定义策略，请参阅[更新 SSL 协商配置](ssl-config-update.md#ssl-config-update-console)。

1. 对于**默认 SSL 证书**，请选择**编辑**，然后执行以下操作之一：
   + 如果您使用创建或导入了证书 Amazon Certificate Manager，请选择 F **rom ACM**，从列表中选择证书，然后选择**保存更改**。
**注意**  
此选项只在支持 的区域中可用 Amazon Certificate Manager
   + 如果使用 IAM 导入了证书，请选择**从 IAM** 并从列表中选择该证书，然后选择**保存更改**。
   + 如果您有 SSL 证书要导入到 ACM，请选择**导入**和**到 ACM**。在**证书私有密钥**中，复制并粘贴 PEM 编码的私有密钥文件的内容。在**证书正文**中，复制并粘贴 PEM 编码的公有密钥证书文件的内容。在**证书链 – 可选**中，复制并粘贴 PEM 编码的证书链文件的内容，除非您使用的是自行签名的证书并且浏览器是否隐式接受证书并不重要。
   + 如果您有要导入的 SSL 证书，但该区域不支持 ACM，请选择**导入**和**到 IAM**。在**证书名称**字段中输入证书的名称。在**证书私有密钥**中，复制并粘贴 PEM 编码的私有密钥文件的内容。在**证书正文**中，复制并粘贴 PEM 编码的公有密钥证书文件的内容。在**证书链 – 可选**中，复制并粘贴 PEM 编码的证书链文件的内容，除非您使用的是自行签名的证书并且浏览器是否隐式接受证书并不重要。
   + 选择**保存更改**。

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

1. （可选）选择**添加侦听器**以添加其他侦听器。

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

1. （可选）要为现有负载均衡器设置后端实例身份验证，必须使用 Amazon CLI 或 API，因为控制台不支持此任务。有关更多信息，请参阅[配置后端实例身份验证](elb-create-https-ssl-load-balancer.md#configure_backendauth_clt)。

## 使用添加 HTTPS 监听器 Amazon CLI
<a name="add-listener-cli"></a>

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

**要向您的负载均衡器添加 HTTPS 侦听器，请使用 Amazon CLI**

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
   ```

1. 使用以下[create-load-balancer-listeners](https://docs.amazonaws.cn/cli/latest/reference/elb/create-load-balancer-listeners.html)命令向您的负载均衡器添加侦听器，该侦听器在端口 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
   ```

1. （可选）您可以使用以下[describe-load-balancers](https://docs.amazonaws.cn/cli/latest/reference/elb/describe-load-balancers.html)命令查看负载均衡器的更新详细信息：

   ```
   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": []
                   }
               ], 
               ...
           }
       ]
   }
   ```

1. (可选) 您的 HTTPS 侦听器是使用默认安全策略创建的。如果要指定不同的预定义安全策略或自定义安全策略，请使用[create-load-balancer-policy](https://docs.amazonaws.cn/cli/latest/reference/elb/create-load-balancer-policy.html)和 [set-load-balancer-policiesof-listener](https://docs.amazonaws.cn/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 命令。有关更多信息，请参阅 [使用更新 SSL 协商配置 Amazon CLI](ssl-config-update.md#ssl-config-update-cli)。

1. （可选）要设置后端实例身份验证，请使用 [set-load-balancer-policies-for-backend-server](https://docs.amazonaws.cn/cli/latest/reference/elb/set-load-balancer-policies-for-backend-server.html) 命令。有关更多信息，请参阅[配置后端实例身份验证](elb-create-https-ssl-load-balancer.md#configure_backendauth_clt)。