通过独享型ELB实现TLS卸载(双向认证)
应用场景
如果您的四层业务对安全性要求极高,您可以通过TLS双向认证对通信双方进行认证进一步提高业务的安全性。
前提条件
- 已创建独享型ELB实例,且ELB已绑定EIP。具体操作,请参见购买独享型负载均衡器和绑定IPv4公网IP。
- 已购买SSL证书或者上传第三方证书到SSL证书服务并绑定公网域名。推荐您在华为云云证书管理服务购买服务器证书,详情请参见购买SSL证书。
- 已购买CA证书并导出CA证书文件至本地或者直接使用自签名的CA证书。推荐您在华为云云证书管理服务购买CA证书并导出私有CA证书到您的本地环境,详情请参见购买私有CA和导出私有CA证书。
- 通过私有CA签发私有证书并安装至客户端。具体操作请参见申请私有证书和在客户端安装私有证书。
- 已创建协议类型为TLS协议的后端服务器组,服务器组中添加了ECS01和ECS02实例,并且在其中部署了应用服务。
操作步骤

步骤一:上传服务器证书到ELB控制台
在ELB添加TLS监听器前,您需要将您的证书上传到将ELB控制台。
- 进入弹性负载均衡列表页面。
- 在左侧导航栏单击“证书管理”。
- 单击“创建证书”,配置参数请参见表1。
表1 服务器证书参数说明 参数
说明
证书类型
创建证书的类型,本文选择服务器证书。
证书来源
服务器证书同时支持SSL证书管理服务提供的数字证书和您的自有证书。
本文选择“SSL证书管理”以同步您在华为云云证书管理服务已经购买的SSL证书。
证书
选择您需要上传到ELB控制台的证书。
企业项目
企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。
SNI扩展域名(可选)
将自动同步SSL证书已绑定的所有域名。
当您的证书用于配置SNI证书时,将支持根据客户端HTTPS请求的域名来选择对应的SNI证书完成认证。
描述
添加对该证书的描述信息,非必填项。
- 单击“确定”,完成创建。
步骤二:上传CA证书到ELB控制台
在ELB添加TLS监听器前,您需要将您的CA证书上传到将ELB控制台。
- 进入弹性负载均衡列表页面。
- 在左侧导航栏单击“证书管理”。
- 单击“创建证书”,配置参数请参见表2。
- 单击“确定”,完成创建。
步骤三:添加TLS监听器并配置双向认证
- 进入弹性负载均衡列表页面。
- 在目标弹性负载均衡实例的操作列,单击“添加监听器”。
- 在添加监听器页面,协议类型选择“TLS”,“SSL解析方式”选择“双向认证”,
在服务器证书的配置项中选择步骤一中上传到ELB控制台的服务器证书。
在CA证书的配置项中选择步骤二中上传到ELB控制台的服务器证书。
图2 添加HTTPS监听器并配置双向认证 - 单击“下一步:配置后端分配策略”,后端服务器组参数选择“使用已经”。选择已经创建完成的服务器组,完成后单击“下一步:确认配置”。
- 确认配置参数后,单击“提交”,完成TLS监听器的创建。
步骤四:配置域名解析
通过为域名添加A类型记录集解析,将域名解析到ELB的公网地址,使得客户端可以通过公网域名访问ELB。
更多关于A类型记录集的配置指导,请参考配置网站解析。
- 进入云解析服务控制台。
- 在左侧树状导航栏,选择“公网域名”。
- 在待添加记录集的公网域名所在行,单击操作列的“管理解析”。
- 单击“添加记录集”,进入“添加记录集”页面。
- 设置记录集参数,如表3所示。
表3 A类型记录集参数说明 参数
示例
说明
记录类型
A – 将域名指向IPv4地址
记录集的类型,本实践为A – 将域名指向IPv4地址。
主机记录
www
您域名的前缀。
线路类型
全网默认
解析的线路类型用于DNS服务器在解析域名时,根据访问者的来源,返回对应的服务器IP地址。
默认值为“全网默认”。
全网默认:默认线路类型,当未根据访问者来源设置解析线路时,系统会返回默认解析结果。
TTL(秒)
300
解析记录在本地DNS服务器的缓存时间,以秒为单位。
本实践使用默认值300秒。
记录值
192.168.12.2
192.168.12.3
域名对应的IPv4地址,本实践为ELB绑定的弹性公网IP地址。
高级配置(可选)
-
您可以单击
,展开折叠的高级配置区域,设置记录集的别名和权重并添加标签和描述,本文保持默认设置。
- 单击“确定”。
- 返回“解析记录”页面。
步骤五:验证TLS双向认证
您可以参考以下方案对TLS双向认证进行验证。
- 在浏览器中输入ELB实例绑定的域名,例如https://www.elbtest.com,在弹出的对话框中选择用于客户端验证您本人身份的证书并单击“确定”。
图3 选择用户客户端验证您身份的证书
- 由于浏览器缓存的影响,客户端请求可能复用TLS会话,建议您采用无痕模式的浏览器访问域名进行验证。多次刷新页面,可以观察到请求分发至了两台ECS。
图4 请求转发到ECS01图5 请求转发到ECS02
登录您的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。
