
# 通过独享型ELB实现TLS卸载（双向认证）
#### 应用场景
如果您的四层业务对安全性要求极高，您可以通过TLS双向认证对通信双方进行认证进一步提高业务的安全性。
#### 前提条件
- 已创建独享型ELB实例，且ELB已绑定EIP。具体操作，请参见[购买独享型负载均衡器](https://support.huaweicloud.com/usermanual-elb/elb_lb_000006.html)和[绑定IPv4公网IP](https://support.huaweicloud.com/usermanual-elb/elb_ug_fz_0015.html)。
- 已购买SSL证书或者上传第三方证书到SSL证书服务并绑定公网域名。推荐您在华为云云证书与管理服务购买服务器证书，详情请参见[购买SSL证书](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0074.html)。
- 已购买CA证书并导出CA证书文件至本地或者直接使用自签名的CA证书。推荐您在华为云云证书与管理服务购买CA证书并导出私有CA证书到您的本地环境，详情请参见[购买私有CA](https://support.huaweicloud.com/tg-ccm/ccm_01_0016.html)和[导出私有CA证书](https://support.huaweicloud.com/tg-ccm/ccm_01_0019.html)。
- 通过私有CA签发私有证书并安装至客户端。具体操作请参见[申请私有证书](https://support.huaweicloud.com/tg-ccm/ccm_01_0025.html)和[在客户端安装私有证书](https://support.huaweicloud.com/tg-ccm/ccm_01_0346.html)。

- 已创建协议类型为TLS协议的后端服务器组，服务器组中添加了ECS01和ECS02实例，并且在其中部署了应用服务。
  单击查看本示例ECS01的部署命令
  - yum install -y nginx
  
  - systemctl start nginx.service
  
  - cd /usr/share/nginx/html/
  
  - echo "Hello World! This is ECS01 for the ELB test." \> index.html
   
  单击查看本示例ECS02的部署命令
  - yum install -y nginx
  
  - systemctl start nginx.service
  
  - cd /usr/share/nginx/html/
  
  - echo "Hello World! This is ECS02 for the ELB test." \> index.html
    
 
#### 操作步骤
图1配置TLS卸载双向认证操作流程   
![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002234510554.png "点击放大")
 #### 步骤一：上传服务器证书到ELB控制台
在ELB添加TLS监听器前，您需要将您的证书上传到将ELB控制台。
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在左侧导航栏单击"证书管理"。
3. 单击"创建证书"，配置参数请参见[表1]。
    表1服务器证书参数说明 
   | 参数          | 说明                                                                                                                                |
   |:---|:---|
   | 证书类型        | 创建证书的类型，本文选择服务器证书。                                                                                                                |
   | 证书来源        | 服务器证书同时支持SSL证书管理服务提供的数字证书和您的自有证书。 本文选择"SSL证书管理"以同步您在华为云云证书与管理服务已经购买的SSL证书。 |
   | 证书          | 选择您需要上传到ELB控制台的证书。                                                                                                                |
   | 企业项目        | 企业项目是一种云资源管理方式，企业项目管理服务提供统一的云资源按项目管理，以及项目内的资源管理、成员管理。                                                                             |
   | SNI扩展域名（可选） | 将自动同步SSL证书已绑定的所有域名。 当您的证书用于配置SNI证书时，将支持根据客户端HTTPS请求的域名来选择对应的SNI证书完成认证。     |
   | 描述          | 添加对该证书的描述信息，非必填项。                                                                                                                 |
      
   
4. 单击"确定"，完成创建。
 
 #### 步骤二：上传CA证书到ELB控制台
在ELB添加TLS监听器前，您需要将您的CA证书上传到将ELB控制台。
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在左侧导航栏单击"证书管理"。
3. 单击"创建证书"，配置参数请参见[表2]。
    表2CA证书参数说明 
   | 参数   | 说明                                                                                                                                                                                                                                          |
   |:---|:---|
   | 证书类型 | 创建证书的类型，本文选择CA证书。                                                                                                                                                                                                                           |
   | 证书名称 | 您的CA证书名称。                                                                                                                                                                                                                                   |
   | 企业项目 | 企业项目是一种云资源管理方式，企业项目管理服务提供统一的云资源按项目管理，以及项目内的资源管理、成员管理。                                                                                                                                                                                       |
   | 证书内容 | 证书内容必须为PEM格式。 单击"上传"，上传您本地的CA证书文件，请确保您的浏览器是最新版本。 证书内容格式如下： ``` -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- ``` |
   | 描述   | 添加对该证书的描述信息，非必填项。                                                                                                                                                                                                                           |
      
   
4. 单击"确定"，完成创建。
 
#### 步骤三：添加TLS监听器并配置双向认证
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在目标弹性负载均衡实例的操作列，单击"添加监听器"。
3. 在添加监听器页面，协议类型选择"TLS"，"SSL解析方式"选择"双向认证"， 在服务器证书的配置项中选择[步骤一]中上传到ELB控制台的服务器证书。
   在CA证书的配置项中选择[步骤二]中上传到ELB控制台的服务器证书。
   图2添加TLS监听器并配置双向认证   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002232779696.png "点击放大") 
4. 单击"下一步：配置后端分配策略"，后端服务器组参数选择"使用已经"。选择已经创建完成的服务器组，完成后单击"下一步：确认配置"。
5. 确认配置参数后，单击"提交"，完成TLS监听器的创建。
 
#### 步骤四：配置域名解析
通过为域名添加A类型记录集解析，将域名解析到ELB的公网地址，使得客户端可以通过公网域名访问ELB。
更多关于A类型记录集的配置指导，请参考[快速添加网站域名解析](https://support.huaweicloud.com/qs-dns/dns_qs_0002.html)。
1. 进入[云解析服务控制台](https://console.huaweicloud.com/dns/?#/dns/dashboard)。
2. 在左侧树状导航栏，选择"公网域名"。 进入域名列表页面。
   
3. 在待添加记录集的公网域名所在行，单击操作列的"管理解析"。
4. 单击"添加记录集"，进入"添加记录集"页面。
5. 设置记录集参数，如[表3]所示。
    表3A类型记录集参数说明 
   | 参数       | **示例**                                                           | 说明                                                                                                                                                                                      |
   |:---|:---|:---|
   | 记录类型     | **A -- 将域名指向IPv4地址**                                             | 记录集的类型，本实践为**A -- 将域名指向IPv4地址**。                                                                                                                                                        |
   | 主机记录     | **www**                                                          | 您域名的前缀。                                                                                                                                                                                 |
   | 线路类型     | **全网默认**                                                         | 解析的线路类型用于DNS服务器在解析域名时，根据访问者的来源，返回对应的服务器IP地址。 默认值为"全网默认"。 全网默认：默认线路类型，当未根据访问者来源设置解析线路时，系统会返回默认解析结果。 |
   | TTL(秒)   | **300**                                                          | 解析记录在本地DNS服务器的缓存时间，以秒为单位。 本实践使用默认值300秒。                                                                                                         |
   | 记录值      | **192.168.12.2** **192.168.12.3** | 域名对应的IPv4地址，本实践为ELB绑定的弹性公网IP地址。                                                                                                                                                         |
   | 高级配置（可选） | **-**                                                            | 您可以单击![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002269461589.png)，展开折叠的高级配置区域，设置记录集的别名和权重并添加标签和描述，本文保持默认设置。                                                   |
      
   
6. 单击"确定"。
7. 返回"解析记录"页面。 添加完成后，您可以在域名对应的记录集列表中查看已添加的记录集。当记录集的状态显示为"正常"时，表示记录集添加成功。
   
 
#### 步骤五：验证TLS双向认证
您可以参考以下方案对TLS双向认证进行验证。
- [Windows客户端验证]
  1. 在浏览器中输入ELB实例绑定的域名，例如**https://www.elbtest.com** ，在弹出的对话框中选择用于客户端验证您本人身份的证书并单击"确定"。
     图3选择用户客户端验证您身份的证书   
     ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002253063118.png "点击放大") 
  
  2. 由于浏览器缓存的影响，客户端请求可能复用TLS会话，建议您采用无痕模式的浏览器访问域名进行验证。多次刷新页面，可以观察到请求分发至了两台ECS。
     图4请求转发到ECS01   
     ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002287593393.png "点击放大")
     图5请求转发到ECS02   
     ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002252960072.png "点击放大") 
   
- [Linux客户端验证]
  登录您的Linux客户端，执行以下命令验证TLS双向认证过程。
  ```
  curl -k --cert /root/client.crt --key /root/client.key https://www.elbtest.com
  ```
  其中，**--cert /root/client.crt** 指定了客户端证书文件的位置，**--key /root/client.key**指定与客户端证书关联的私钥位置。
  如果可以收到以下的报文，表示客户端与服务器端之间完成了TLS双向认证并将请求分发到了两台ECS。
  图6验证TLS双向认证（Linux）   
  ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002287823381.png "点击放大")
#### 相关文档
- 添加TLS监听器详细操作，请参见[添加TLS监听器](https://support.huaweicloud.com/usermanual-elb/elb_ug_jt_0100.html)。
- API相关操作：
  - [创建监听器](https://support.huaweicloud.com/api-elb/CreateListener.html)
  
  - [创建证书](https://support.huaweicloud.com/api-elb/CreateCertificate.html)
   
 
