VMware NSX Advanced Load Balancer(原AVI Networks)是全球最领先的软件定义的应用交付控制器(ADC)解决方案,其是传统负载均衡的升级和扩展,VMware NSX ALB能够打破传统负载均衡孤岛架构,采用全软件形式交付,即灵活,又高效,可以帮助企业节约成本,提高效率。
NSX ALB涉及到证书的组件包含如下两个:
- NSX ALB控制器证书
- 负载均衡服务证书
其中NSX ALB控制器证书,是浏览器访问控制器时使用的证书,负载均衡证书是在配置L7负载均衡的https时使用的证书,一般我们使用通配符证书,这样不用每次都增加证书。
企业根CA和中间CA的搭建,请参考 [企业CA系列一]搭建企业根CA和中间CA
警告:一定要预先在测试环境进行验证,并考虑好相关联的系统证书信任问题!
前提条件和操作步骤概述
NSX ALB的证书替换也非常简单,大致流程如下:
- 搭建企业CA;
- 使用企业中间CA签发NSX ALB控制器证书;
- 使用企业中间CA签发负载均衡服务证书(本测试使用通配符证书);
- 导入企业根CA和企业中间CA;
- 导入控制器证书;
- 导入应用证书;
- 应用NSX ALB控制器证书;
- (可选)测试负载均衡应用证书;
通过中间CA为NSX ALB控制器签发证书
先准备NSX ALB证书所需的配置文件和证书签名文件,需要修改以下内容:
- CN": "mgmt-alb.corp.local"(修改为NSX ALB控制器域名)
- "hosts": ["127.0.0.1","mgmt-alb","mgmt-alb.corp.local","192.168.100.70"] (修改为控制器的域名和IP地址)
- "expiry": "87600h" (证书有效期为10年)
mkdir -p /root/certs/mgmt-alb
cd /root/certs/mgmt-alb
cat <<EOF > /root/certs/mgmt-alb/config.json
{
"signing": {
"default": {
"usages": ["digital signature","key encipherment","signing","server auth"],
"expiry": "87600h"
}
}
}
EOF
cat <<EOF > /root/certs/mgmt-alb/mgmt-alb-csr.json
{
"CN": "mgmt-alb.corp.local",
"hosts": [
"127.0.0.1",
"mgmt-alb",
"mgmt-alb.corp.local",
"192.168.100.70"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Changchun",
"O": "VMware",
"OU": "DevOps",
"ST": "Jilin"
}
]
}
cfssl gencert -ca=/root/intermediate/corp/corp-intermediate-ca.pem -ca-key=/root/intermediate/corp/corp-intermediate-ca-key.pem -config=config.json mgmt-alb-csr.json | cfssljson -bare mgmt-alb
cat mgmt-alb.pem ../../intermediate/corp/corp-intermediate-ca.pem ../../ca/root-ca.pem >> mgmt-alb-chain.pem
通过中间CA为应用服务签发通配符证书
准备应用服务证书所需的配置文件和证书签名文件,需要修改以下内容:
- CN": "wildcard.corp.local"(修改为NSX ALB控制器域名)
- "hosts": ["127.0.0.1","*.corp.local"] (修改为控制器的域名和IP地址)
- "expiry": "87600h" (证书有效期为10年)
mkdir -p /root/certs/mgmt-alb-wildcard
cd /root/certs/mgmt-alb-wildcard
cat <<EOF > /root/certs/mgmt-alb-wildcard/config.json
{
"signing": {
"default": {
"usages": ["digital signature","key encipherment","signing","server auth"],
"expiry": "87600h"
}
}
}
EOF
cat <<EOF > /root/certs/mgmt-alb-wildcard/mgmt-alb-wildcard-csr.json
{
"CN": "wildcard.corp.local",
"hosts": [
"127.0.0.1",
"mgmt-alb",
"*.corp.local"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Changchun",
"O": "VMware",
"OU": "DevOps",
"ST": "Jilin"
}
]
}
cfssl gencert -ca=/root/intermediate/corp/corp-intermediate-ca.pem -ca-key=/root/intermediate/corp/corp-intermediate-ca-key.pem -config=config.json mgmt-alb-wildcard-csr.json | cfssljson -bare mgmt-alb-wildcard
cat mgmt-alb-wilcard.pem ../../intermediate/corp/corp-intermediate-ca.pem ../../ca/root-ca.pem >> mgmt-alb-wildcard-chain.pem
导入企业根CA证书和中间CA证书
- 登录NSX ALB控制器管理控制台
- Templates->Security->SSL/TLS Certificates->Create->Root/Intermediate CA Certificate
- 输入Name和粘贴root-ca.pem->Validate->Import
- 重复2-3步,导入企业中间CA证书(corp-intermediate-ca.pem)
- 检查企业根CA和中间CA证书
导入控制器证书
- 登录NSX ALB控制器管理控制台
- Templates->Security->SSL/TLS Certificates->Create->Controller Certificate
- 选择Import类型,输入Name和粘贴mgmt-alb-chain.pem和mgmt-alb-key.pem内容,点击Validate->Import
导入应用证书
- 登录NSX ALB控制器管理控制台
- Templates->Security->SSL/TLS Certificates->Create->Application Certificate
- 选择Import类型,输入Name和粘贴mgmt-alb-wildcard-chain.pem和mgmt-alb-key.pem内容,点击Validate->Import
替换控制器证书
- 登录NSX ALB控制器管理控制台
- Administration->Settings->Access Settings->编辑
- 删除系统默认证书,添加mgmt-alb证书->Save
- 等待服务重启完毕后,重新打开NSX ALB控制台
完成
至此,我们完成了NSX ALB产品的控制器证书替换和应用服务证书的导入,当您创建Https服务负载均衡时,可以使用导入的通配符证书。