- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
- API(V3)
- API(V2)
- API(OpenStack API)
- 应用示例
- 权限和授权项
- 附录
- 历史API
- 级联删除功能说明
- SDK参考
- 常见问题
- 视频帮助
- 产品术语
-
更多文档
- 用户指南(阿布扎比区域)
- API参考(阿布扎比区域)
-
用户指南 (巴黎区域)
- 产品介绍
- 快速入门
- 负载均衡器
- 监听器
- HTTP/HTTPS监听器高级配置
- 后端服务器组
- 后端服务器(独享型)
- 后端服务器(共享型)
- 证书管理
- 访问控制管理
- TLS安全策略
- 标签管理
- 访问日志
- 监控
- 审计
- 权限管理
- 关于配额
-
常见问题
- 高频常见问题
- 为什么通过负载均衡无法访问后端业务?
- 如何检查弹性负载均衡服务不通或异常中断?
- 如何排查ELB的异常返回码?
- 弹性负载均衡器是否可以单独使用?
- ELB是否支持TCP长连接?
- 弹性负载均衡是否支持后端FTP服务?
- 弹性负载均衡分配的EIP是否为独占?
- 单个用户默认可以创建多少个负载均衡器或监听器?
- ELB权限和使用范围是什么?
- 当负载均衡器正在运行中是否可以调整后端服务器的数量?
- 弹性负载均衡是否可以添加不同操作系统的服务器?
- ELB添加后端的端口号是否可以不一致?
- ELB支持跨用户、跨VPC使用么?
- 负载均衡器的后端服务器可以反过来访问公网/私网负载均衡器上的端口吗?
- ELB能否实现前端是HTTPS协议,后端也是HTTPS协议?
- ELB所属的VPC和子网支持修改吗?
- 是否支持在业务不中断的前提下,将共享型负载均衡升级为独享型负载均衡?
- ELB对于IPv6网络的支持情况是怎样的?
- 如何检查弹性负载均衡前后端流量不一致?
- 如何检查请求不均衡?
- 如何检查弹性负载均衡业务访问延时大?
- 如何检查压测性能上不去?
- 负载均衡器
- 监听器
-
后端服务器
- 为什么后端服务器上收到的健康检查报文间隔和设置的间隔时间不一致?
- 使用ELB后,后端服务器能否访问公网?
- 为什么100开头的IP在频繁访问后端服务器?
- ELB可以跨区域关联后端服务器么?
- 公网负载均衡的后端服务器要不要绑定EIP?
- 如何检查后端服务器网络状态?
- 如何检查后端服务器网络配置?
- 如何检查后端服务器服务状态?
- 后端服务器什么时候被认为是健康的?
- 如何检查通过EIP访问后端云服务器?
- 为什么云监控服务统计的ELB活跃连接数与后端服务器上的连接数不一致?
- 为什么配置了白名单后还能访问后端服务器?
- ELB修改后端服务器权重后多久生效?
- 为什么开启跨VPC后端需要确保负载均衡所属子网至少拥有16个可用IP地址?
- 健康检查
- 获取源IP
- HTTP/HTTPS监听器
- 会话保持
- 证书管理
- 监控
- 修订记录
- API参考 (巴黎区域)
- 用户指南(吉隆坡区域)
- API参考(吉隆坡区域)
- 用户指南(安卡拉区域)
- API参考(安卡拉区域)
- 通用参考
链接复制成功!
在ELB中配置HTTPS双向认证以提升业务安全性
应用场景
一般的HTTPS业务场景只对服务器做认证,因此只需要配置服务器的证书即可。某些关键业务,需要对通信双方的身份都要做认证,以确保业务的安全性。
此时,除了配置服务器的证书之外,还需要配置客户端的证书,以实现通信双方的双向认证功能。
本章节以自签名证书为例,介绍如何配置HTTPS双向认证。但是自签名证书存在安全隐患,建议客户使用云证书管理服务购买证书、或购买其他权威机构颁发的证书。
操作流程
![](https://support.huaweicloud.com/intl/zh-cn/bestpractice-elb/zh-cn_image_0000001887643234.png)
步骤一:使用OpenSSL制作CA证书
- 登录到任意一台安装有openssl工具的Linux机器。
- 创建工作目录并进入该目录。
cd ca
- 创建CA证书的openssl配置文件ca_cert.conf,内容如下:
[ req ] distinguished_name = req_distinguished_name prompt = no [ req_distinguished_name ] O = ELB
- 创建CA证书私钥文件ca.key。
openssl genrsa -out ca.key 2048
图2 生成CA证书私钥文件 - 创建CA证书的csr请求文件ca.csr。
openssl req -out ca.csr -key ca.key -new -config ./ca_cert.conf
- 创建自签名的CA证书ca.crt。
openssl x509 -req -in ca.csr -out ca.crt -sha1 -days 5000 -signkey ca.key
图3 创建自签名CA证书
步骤二:使用CA证书签发服务器证书
用户可以用权威CA签发的证书或者自签名的证书,这里以自签名证书为例说明如何创建服务器证书。
- 登录到生成CA证书的服务器。
- 创建与CA平级的目录,并进入该目录。
cd server
- 创建服务器证书的openssl配置文件server_cert.conf,内容如下:
[ req ] distinguished_name = req_distinguished_name prompt = no [ req_distinguished_name ] O = ELB CN = www.test.com
CN字段可以根据需求改为服务器对应的域名、IP地址。
- 创建服务器证书私钥文件server.key。
- 创建服务器证书的csr请求文件server.csr。
openssl req -out server.csr -key server.key -new -config ./server_cert.conf
- 使用CA证书签发服务器证书server.crt。
openssl x509 -req -in server.csr -out server.crt -sha1 -CAcreateserial -days 5000 -CA ../ca/ca.crt -CAkey ../ca/ca.key
图4 签发服务器证书
步骤三:使用CA证书签发客户端证书
- 登录到生成CA证书的服务器。
- 创建与CA平级的目录,并进入该目录。
cd client
- 创建客户端证书的openssl配置文件client_cert.conf,内容如下:
[ req ] distinguished_name = req_distinguished_name prompt = no [ req_distinguished_name ] O = ELB CN = www.test.com
CN字段可以根据需求改为对应的域名、IP地址。
- 创建客户端证书私钥文件client.key。
openssl genrsa -out client.key 2048
图5 创建客户端证书私钥文件 - 创建客户端证书的csr请求文件client.csr。
openssl req -out client.csr -key client.key -new -config ./client_cert.conf
图6 创建客户端证书csr文件 - 使用CA证书签发客户端证书client.crt。
openssl x509 -req -in client.csr -out client.crt -sha1 -CAcreateserial -days 5000 -CA ../ca/ca.crt -CAkey ../ca/ca.key
图7 签发客户端证书 - 把客户端证书格式转为浏览器可识别的p12格式。
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
该命令执行时需要输入导出密码,请输入并记住该密码,在证书导入浏览器时需要使用。
步骤四:上传服务器证书到ELB控制台
- 登录负载均衡控制台页面。
- 单击“证书管理 > 创建证书”。
- 在创建证书页面,证书类型选择“服务器证书”,同时把前面生成的服务器证书server.crt以及私钥server.key的内容复制到对应的区域,单击“确定”按钮。
复制内容时请将最后的换行符删除,避免保存时报错。
服务器证书和私钥内容只支持上传pem格式。
步骤五:上传CA证书到ELB控制台
- 登录负载均衡控制台页面。
- 单击“证书管理 > 创建证书”。
- 在创建证书页面,证书类型选择“CA证书”,同时把步骤一:使用OpenSSL制作CA证书创建的客户端CA证书ca.crt的内容复制到证书内容区域,单击“确定”按钮。
复制内容时请将最后的换行符删除,避免保存时报错。
图8 创建CA证书CA证书内容只支持上传pem格式。
步骤六:配置HTTPS双向认证监听器
- 登录负载均衡控制台页面。
- 在添加监听器页面,协议类型选择“HTTPS”,“SSL解析方式”选择“双向认证”,并且在服务器证书和CA证书两个配置项中选择所添加的服务器证书和CA证书对应的名称。
图9 添加HTTPS监听器并配置双向认证
步骤七:导入客户端证书并验证
浏览器方式功能测试
- 浏览器导入客户端证书(以Internet Explorer 11为例说明)
- 把客户端证书从Linux机器导出来,即前面签发的client.p12证书文件。
- 单击“设置 > Internet选项”,切换到“内容”页签。
- 单击“证书”,然后单击“导入”,导入client.p12证书文件。
图10 安装client.p12证书
- 测试验证
Curl工具方式功能测试验证
- 导入客户端证书
把客户端证书client.crt和客户端私钥文件client.key拷贝到新目录,如目录/home/client_cert。
- 测试验证
在shell界面,输入以下命令,请输入正确的证书地址和密钥文件地址,以及负载均衡器的IP地址和监听器端口(以下用https://XXX.XXX.XXX.XXX:XXX 表示,以实际IP地址和端口为准)。
curl -k --cert /home/client_cert/client.crt --key /home/client_cert/client.key https://XXX.XXX.XXX.XXX:XXX/ -I
如果可以正确获得响应码,如图12说明验证成功。