对接独享型负载均衡器
本文介绍CSS集群对接独享型负载均衡器的操作步骤。
(可选)准备自签名证书
如果规划的ELB监听器的协议为HTTP则跳过此步骤。
准备并上传自签名证书。
建议使用云证书管理服务CCM购买的证书,或者其他权威机构颁发的证书。
- 登录到任意一台安装有OpenSSL工具和JDK的Linux客户端。
- 执行如下命令制作自签名证书。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
mkdir ca mkdir server mkdir client #使用OpenSSL制作CA证书 cd ca #创建CA证书的openssl配置文件ca_cert.conf cat >ca_cert.conf <<EOF [ req ] distinguished_name = req_distinguished_name prompt = no [ req_distinguished_name ] O = ELB EOF #创建CA证书私钥文件ca.key openssl genrsa -out ca.key 2048 #创建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 #把ca证书格式转为p12格式 openssl pkcs12 -export -clcerts -in ca.crt -inkey ca.key -out ca.p12 #把ca证书格式转为jks格式 keytool -importkeystore -srckeystore ca.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore ca.jks #使用CA证书签发服务器证书 cd ../server #创建服务器证书的openssl配置文件server_cert.conf,CN字段根据需求改为服务器对应的域名、IP地址 cat >server_cert.conf <<EOF [ req ] distinguished_name = req_distinguished_name prompt = no [ req_distinguished_name ] O = ELB CN = 127.0.0.1 EOF #创建服务器证书私钥文件server.key openssl genrsa -out server.key 2048 #创建服务器证书的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 #把服务端证书格式转为p12格式 openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12 #把服务证书格式转为jks格式 keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore server.jks #使用CA证书签发客户端证书 cd ../client #创建客户端证书的openssl配置文件client_cert.conf,CN字段根据需求改为服务器对应的域名、IP地址 cat >client_cert.conf <<EOF [ req ] distinguished_name = req_distinguished_name prompt = no [ req_distinguished_name ] O = ELB CN = 127.0.0.1 EOF #创建客户端证书私钥文件client.key openssl genrsa -out client.key 2048 #创建客户端证书的csr请求文件client.csr openssl req -out client.csr -key client.key -new -config ./client_cert.conf #使用CA证书签发客户端证书client.crt openssl x509 -req -in client.csr -out client.crt -sha1 -CAcreateserial -days 5000 -CA ../ca/ca.crt -CAkey ../ca/ca.key #把客户端证书格式转为浏览器可识别的p12格式 openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12 #把客户端证书格式转为jks格式 keytool -importkeystore -srckeystore client.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore client.jks
- 上传自签名证书,具体操作请参见配置服务器证书和私钥。
创建独享型负载均衡器
- 登录弹性负载均衡管理控制台。
- 参考创建独享型负载均衡器,创建独享型负载均衡器。CSS集群对接独享型负载均衡器所需要关注的参数如表1所示,其他参数请根据实际需要填写。
表1 独享型负载均衡器的配置说明 参数
配置说明
取值样例
实例类型
选择“独享型”。
独享型
计费模式
性能独享型负载均衡器的收费类型。
按需计费
区域
选择CSS集群所在的区域。
-
跨VPC后端
开启跨VPC后端才能连接CSS集群。
开启
网络类型
负载均衡器对外提供服务所使用的网络类型。
IPv4私网
所属VPC
所属虚拟私有云。无论选择哪种网络类型,均需配置此项。
需要选择和CSS集群同一VPC。
-
子网
选择创建负载均衡实例的子网。无论选择哪种网络类型,均需配置此项。
需要选择和CSS集群同一子网。
-
规格
建议选择功能和性能更优的应用型规格。
应用型(HTTP/HTTPS)
小型 I
对接负载均衡器
开启了HTTPS访问的安全模式集群不支持HTTP类型的前端协议认证,如果需要使用HTTP类型的前端协议,请变更集群的安全模式,将“安全模式”变更为“非安全模式”。
变更安全模式前,请关闭负载均衡,安全模式变更后再开启负载均衡。
- 登录云搜索服务管理控制台。
- 在“集群管理”页面选择需要对接负载均衡器的集群,单击集群名称进入集群“基本信息”页面。
- 在左侧菜单栏,选择“负载均衡”,打开负载均衡开关,配置负载均衡基础信息。
- 负载均衡器:选择已创建的负载均衡器。也可以单击“创建负载均衡器”创建一个新的负载均衡器。
- 委托:选择对应的委托名称。如果没有委托,需要单击“创建委托”创建一个委托,所选择的委托需要同时对ELB Administrator和ELB FullAccess权限授权。
图1 开启负载均衡
- 单击“确定”,进入监听器配置页面。
图2 创建监听器
- 在监听器配置区域,您可以单击右侧配置监听器的相关信息。
图3 配置监听器
表2 监听器的配置信息 参数
配置说明
前端协议
客户端与负载均衡监听器建立流量分发连接的协议。
根据实际业务需要选择协议。
前端端口
客户端与负载均衡监听器建立流量分发连接的端口。
9200仅举例,可以根据实际业务需要自定义。
SSL解析方式
客户端到服务器端认证方式。
根据实际业务需要选择解析方式。
服务器证书
服务器证书用于SSL握手协商,需提供证书内容和私钥。
当“SSL解析方式”选择“双向认证”时,必须配置服务器证书。
CA证书
CA证书又称客户端CA公钥证书,用于验证客户端证书的签发者。
在开启HTTPS双向认证功能时,只有当客户端能够出具指定CA签发的证书时,HTTPS连接才能成功。
当“前端协议”选择“HTTPS”时,才需要配置CA证书。
- (可选)在连接方式区域,您可以单击“访问控制”后的“设置”,配置允许访问的IP地址或网段,不设置默认允许所有的IP访问。
健康检查结果 |
说明 |
---|---|
正常 |
节点IP连接正常。 |
异常 |
节点IP连接,不可用 |
通过Curl命令接入集群
通过执行如下命令,测试独享型负载均衡器是否能够正常接入集群。
集群安全模式 |
ELB最终对外提供的服务形态 |
接入集群的Curl命令 |
---|---|---|
非安全 |
无认证 |
curl http://IP:9200 |
单向认证 |
curl -k --cert ./client.crt --key ./client.key https://IP:9200 |
|
双向认证 |
curl --cacert ./ca.crt --cert ./client.crt --key ./client.key https://IP:9200 |
|
安全+HTTP |
密码认证 |
curl http://IP:9200 -u user:pwd |
单向认证+密码认证 |
curl -k --cert ./client.crt --key ./client.key https://IP:9200 -u user:pwd |
|
双向认证+密码认证 |
curl --cacert ./ca.crt --cert ./client.crt --key ./client.key https://IP:9200 -u user:pwd |
|
安全+HTTPS |
单向认证+密码认证 |
curl -k --cert ./client.crt --key ./client.key https://IP:9200 -u user:pwd |
双向认证+密码认证 |
curl --cacert ./ca.crt --cert ./client.crt --key ./client.key https://IP:9200 -u user:pwd |
变量名 |
说明 |
---|---|
IP |
弹性负载均衡的IP地址。 |
user |
访问CSS集群的用户名。 |
pwd |
用户名对应的密码。 |
当正常返回Elasticsearch集群信息时,表示连接成功,例如安全模式+HTTPS协议的集群对接ELB双向认证模式的返回信息如图4所示。