
# 通过为ELB配置域名解析实现多域名访问HTTPS业务
#### 应用场景
如果您需要通过ELB负载多个业务域名，并且基于HTTPS请求域名的不同选择不同的证书进行认证，弹性负载均衡服务提供了SNI证书配置、转发策略配置和域名解析来帮助您高效管理多个域名的流量请求。您可根据本实践方案进行配置多域名HTTPS业务的负载均衡。
![](https://support.huaweicloud.com/bestpractice-elb/public_sys-resources/note_3.0-zh-cn.png)
该功能陆续上线中，已发布区域请以控制台实际为准。如果您有使用需求，可以提交[工单](https://console.huaweicloud.com/ticket/?agencyId=ed9de0b5e3ac4322a529ac43e44d3872&locale=zh-cn#/ticketindex/serviceTickets)进行申请。
#### 流量路径示意图
图1单ELB实例配置多域名业务转发示意图   
![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002414599514.png)
ELB实例会根据客户端请求的HTTPS域名选择对应的证书进行HTTPS认证，然后根据配置的转发策略将请求转发至对应的后端服务器组。
#### 准备工作
- 创建独享型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)。
- 创建两个协议类型为**HTTPS** 协议的后端服务器组，后端服务器组**Server_group01** 和后端服务器组**Server_group02** 中分别添加了ECS01和ECS02实例，并且在其中部署了应用服务。
  单击查看本示例ECS01的部署命令
  - yum install -y nginx
  
  - systemctl start nginx.service
  
  - cd /usr/share/nginx/html/
  
  - echo "Hello, this is ECS01 response." \> index.html
   
  单击查看本示例ECS02的部署命令
  - yum install -y nginx
  
  - systemctl start nginx.service
  
  - cd /usr/share/nginx/html/
  
  - echo "Hello, this is ECS02 response." \> index.html
    
- 已经注册域名并完成备案。具体操作，请参见[注册域名](https://support.huaweicloud.com/qs-domain/domain_qs_240000.html)、[快速完成ICP备案](https://support.huaweicloud.com/qs-icp/icp_07_0002.html)。
  本实践使用如下两个域名：
  - www.example-aaa.com
  
  - www.example-bbb.com
    
- 已经注册配置ELB域名化使用的根域名并完成备案。本实践使用域名**test-example.com**作为根域名。
- 已购买证书或者上传第三方证书到SSL证书服务并绑定公网域名。推荐您在云证书与管理服务购买服务器证书，详情请参见[购买SSL证书](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0074.html)。
  本实践使用以下三本证书：
  1. 默认证书**cert-default** ，绑定域名**test-example.com**。
  
  2. 扩展证书**cert-1** ，绑定域名**www.example-aaa.com**。
  
  3. 扩展证书**cert-2** ，绑定域名**www.example-bbb.com**。
   
 
#### 步骤一：为独享型ELB实例配置域名解析
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在弹性负载均衡列表页面，需要配置域名解析的负载均衡器操作列，单击"更多"。
3. 选择"配置域名解析"，弹出配置域名解析配置。
   图2配置域名解析   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002305046617.png "点击放大")
   您需进行如下[表1]中的配置：
    表1为ELB实例配置域名解析 
   | 参数     | 示例                   | 说明                                                                                                                                                                                                                                                                                                                                                                        |
   |:---|:---|:---|
   | **配置公网域名**                                                                                                                                                                                                                                                                                                                                                                                              |||
   | 公网域名解析 | **开启此开关**            | 云解析服务中会增加ELB公网域名指向ELB公网IP地址的解析记录集，您将可以通过ELB的公网域名访问ELB实例。                                                                                                                                                                                                                                                                                                                  |
   | 根域名    | **test-example.com** | 选择您已在DNS服务创建完成的公网域名作为ELB域名的根域名，系统将基于您选择的根域名派生出子域名作为ELB的公网域名。                                                                                                                                                                                                                                                                                                              |
   | TTL(秒) | **300**              | 解析记录在本地DNS服务器的缓存时间，以秒为单位。 本实践方案保持默认值为"300秒"。                                                                                                                                                                                                                                                                                                |
   | **配置内网域名**                                                                                                                                                                                                                                                                                                                                                                                              |||
   | 内网域名解析 | **开启此开关**            | 云解析服务（DNS）中会增加ELB内网域名指向ELB私有IP地址的解析记录集，您将可以通过内网域名访问ELB实例。                                                                                                                                                                                                                                                                                                                 |
   | 根域名类型  | **公网**               | 您可以选择为ELB配置的内网域名的根域名类型，系统将基于您选择的根域名派生出子域名作为ELB的内网域名。ELB内网域名的根域名同时支持DNS服务的公网域名和私网域名。 - 公网：系统将基于您选择的DNS服务的**公网域名**派生出子域名作为ELB的内网域名。  - 内网：系统将基于您选择的DNS服务的**内网域名**派生出子域名作为ELB的内网域名。   |
   | 根域名    | **test-example.com** | 选择您已在DNS服务创建完成的公网或内网域名作为ELB域名的根域名，系统将基于您选择的根域名派生出子域名作为ELB的内网域名。                                                                                                                                                                                                                                                                                                           |
   | TTL(秒) | **300**              | 解析记录在本地DNS服务器的缓存时间，以秒为单位。 本实践方案保持默认值为"300秒"。                                                                                                                                                                                                                                                                                                |
      
   
4. 如果您确定对实例进行域名配置，请输入 YES。
5. 单击"确定"，完成配置。
6. 单击目标实例的名称，切换到**基本信息** 页签，您可以查看系统为ELB实例生成的域名。
   图3域名解析配置成功   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002321925737.png "点击放大") 
 
 #### 步骤二：上传服务器证书到ELB控制台
在ELB添加HTTPS监听器前，您需要将您的证书上传到将ELB控制台。
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在左侧导航栏单击"证书管理"。
3. 单击"创建证书"，配置参数请参见[表2]。
    表2服务器证书参数说明 
   | 参数          | 说明                                                                                                                                                                                                                                                              |
   |:---|:---|
   | 证书类型        | 创建证书的类型，本文选择服务器证书。                                                                                                                                                                                                                                              |
   | 证书来源        | 服务器证书同时支持SSL证书管理服务提供的数字证书和您的自有证书。 本文选择SSL证书管理服务以同步您在云证书与管理服务已经购买的SSL证书。                                                                                                                                                          |
   | 证书          | 选择您需要上传到ELB控制台的证书。                                                                                                                                                                                                                                              |
   | 企业项目        | 企业项目是一种云资源管理方式，企业项目管理服务提供统一的云资源按项目管理，以及项目内的资源管理、成员管理。                                                                                                                                                                                                           |
   | SNI扩展域名（可选） | 将自动同步SSL证书已绑定的所有域名。 当您的证书用于配置SNI证书时，将支持根据客户端HTTPS请求的域名来选择对应的SNI证书完成认证。 cert-1和cert-2扩展域名分别填入 www.example-aaa.com www.example-bbb.com |
   | 描述（可选）      | 添加对该证书的描述信息，非必填项。                                                                                                                                                                                                                                               |
      
   
4. 单击"确定"，完成创建证书在ELB控制台的创建。 在证书管理控制台，您可以查看创建完成的证书。
   
 
#### 步骤三：添加HTTPS监听器并配置SNI证书
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在目标弹性负载均衡实例的操作列，单击"添加监听器"。
3. 在添加监听器页面，协议类型选择"HTTPS"，"SSL解析方式"选择"单向认证"， 在服务器证书和SNI证书的配置项中选择[步骤二]中上传到ELB控制台的服务器证书。
   图4添加HTTPS监听器并配置认证证书   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002270436718.png "点击放大") 
4. 单击"下一步：配置后端分配策略"，后端服务器组参数选择"使用已有"。选择已经创建完成的服务器组，完成后单击"下一步：确认配置"。
5. 确认配置参数后，单击"提交"，完成HTTPS监听器的创建。
 
#### 步骤四：配置转发策略
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在弹性负载均衡列表页面，单击需要添加转发策略的负载均衡器名称。
3. 在"监听器"页签，您可以通过以下两种操作入口，进入监听器的"转发策略"页签。
   - 在目标监听器所在行的"操作"列，单击"添加/编辑转发策略"。
   
   - 单击目标监听器的名称，并切换到"转发策略"页签。
    
4. 单击"添加转发策略"按钮，配置2条转发策略：
   - 如果域名是www.example-aaa.com，那么转发至后端服务器组**Server_group01**，权重：100。
   
   - 如果域名是www.example-bbb.com，那么转发至后端服务器组**Server_group02**，权重：100。
   
   
   图5配置两条转发策略   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002299305894.png "点击放大") 
5. 配置完成，单击"保存"。
 
#### 步骤五：配置域名解析
通过为域名添加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**     | 域名对应的IPv4地址，本实践为ELB绑定的弹性公网IP地址。                                                                                                                                 |
   | 高级配置（可选） | **-**                | 您可以单击![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002270493582.png)，展开折叠的高级配置区域，设置记录集的别名和权重并添加标签和描述，本文保持默认设置。                           |
      
   
6. 单击"确定"。
#### 步骤六：结果验证
在浏览器中分别输入www.example-aaa.com和www.example-bbb.com都可以通过ELB实例访问到应用服务。
如果实践过程中使用的证书为自签名证书，浏览器将会有不安全提示，但这不影响负载均衡功能的测试验证，仅影响浏览器对连接的信任标识。
1. 在浏览器中输入域名**www.example-aaa.com** ，根据您配置的转发策略，请求将访问到后端服务器组**Server_group01** ，返回如图所示：
   图6成功访问域名**www.example-aaa.com**   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002333241501.png "点击放大") 
2. 在浏览器中输入域名**www.example-bbb.com** ，根据您配置的转发策略，请求将访问到后端服务器组**Server_group02** ，返回如图所示：
   图7成功访问域名**www.example-bbb.com**   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002333323285.png "点击放大") 
 
