当前位置: 首页 > 虚拟化 > [企业CA系列三]替换vCenter和ESXi证书(中间CA模式)

[企业CA系列三]替换vCenter和ESXi证书(中间CA模式)

虚拟化 0条评论 2020-5-25 2,605 views

中间CA模式是有VMCA生成证书请求(CSR)和私钥(KEY),然后由企业根(Root)CA签发,签发的是VMCA证书属于中间CA,所以VMCA可以签发证书,证书被企业根(Root)CA信任。

企业根CA和中间CA的搭建,请参考 [企业CA系列一]搭建企业根CA和中间CA

警告:一定要预先在测试环境进行验证,并考虑好相关联的系统证书信任问题!
警告2:目前,替换VMCA为中间CA模式,会导致vSphere With Kubernetes开启WCP集群失败,此问题在未来发布的vSphere 7.0U1版本修复!

前提条件和操作步骤概述

参考[企业CA系列一]搭建企业根CA和中间CA,文章搭建企业根CA,和签发企业根CA证书;

  1. 搭建企业CA;
  2. 签发根CA证书;
  3. 修改vCenter高级设置中的vpxd.certmgmt.certs.minutesBefore的值为10;
  4. SSH登录vCenter Server,通过证书管理工具生成VMCA CSR;
  5. 使用企业根CA证书和根CA私钥签名VMCA CSR;
  6. 在签名后的证书中追加root-ca.pem证书(VMCA证书在上,root-ca证书在下),形成证书链;
  7. 将证书传到vCenter的/root目录;
  8. 使用vCenter证书管理工具导入中间CA证书和私钥;
  9. 等待证书替换完成和服务启动完成,登录验证;

准备证书存储目录

为清晰区分根CA、中间CA和证书,推荐创建以下目录结构,其中 /root/ca 目录用于存储根CA(Root CA), /root/intermediate 用于存储中间CA(intermediate CA), /root/intermediate/corp 用于存储corp域的中间CA证书, /root/certs 用于存储签发的证书, /root/certs/corp用于存储corp域签发的证书。

Root CA非常重要,不推荐直接使用Root CA签发证书,也不推荐明文保存Root CA,建议在签发中间CA后,加密保存Root CA。 intermediate CA用于签发证书,可以基于不同的域进行规划,并配置不同的证书有效期。 有了中间CA后,会引出证书链的问题,在导入证书时,需要注意。

/root
  /ca
  /intermediate
    /corp
    /vmware
  /certs
    /corp

准备VMCA Intermediate Root CA证书配置文件

正如文章前面提高的,直接使用Root CA签发证书是非常危险的,因为你有可能把私钥泄漏出去(签发证书时需要使用私钥),所以强烈推荐创建中间CA,并通过中间CA签发证书。 /root/intermediate/mgmt-vc/config.json相关配置

  • "usages": 描述此证书具备哪些能力;
  • "expiry": 描述证书有效期;
  • "ca_constraint": 声明此证书是一个CA证书,能够签发证书。

/root/intermediate/vmware/vmware-ca-csr.json相关配置

  • "CN": 通用名,一般出现在证书的颁发机构中,需要清晰描述,且不能与根CA证书相同;
  • "key": 加密算法,VMware产品使用RSA 2048;
  • "names": 指定证书相关属性信息;
  • "C": 两位国家代码
  • "L": 城市
  • "O": 组织
  • "OU": 组织单元
  • "ST": 省
mkdir /root/intermediate/mgmt-vc.corp.local
cd /root/intermediate/mgmt-vc.corp.local
cat <<EOF > /root/intermediate/mgmt-vc.corp.local/config.json
{
"signing": {
  "default": {
  "usages": ["digital signature","key encipherment","cert sign","crl sign","signing","server auth","client auth"],
  "expiry": "175200h",
  "ca_constraint": {"is_ca": true, "max_path_len": 0, "max_path_len_zero": true}
   }
}
}
EOF

VMware中间CA的证书请求来自VMware证书管理器生成,本步骤仅是生成证书基本配置心。

修改vCenter Server高级配置,以允许24小时内替换主机证书

替换机器证书(vSphere Web Client和Host)时,默认要求在VMCA证书签发后的24小时(1440分钟),所以需要修改vCenter的参数,并在证书颁发10分钟后再替换证书。

  1. 登录vSphere Web Client;
  2. 选中vCenter实例->配置->高级配置;
  3. 通过筛选,找到vpxd.certmgmt.certs.minutesBefore
  4. 将值从1440修改到10;

生成VMCA CSR(证书请求文件)

ssh root@mgmt-vc@corp.local
shell
/usr/lib/vmware-vmca/bin/certificate-manager

选择"2",替换VMCA根证书,此选项会生成证书私钥和证书签名申请文件(CSR),并在CSR中包含is-ca的标记,也就是说VMCA申请的是一个中间CA证书。

输入vCenter的SSO账户和密码后,根据提示输入相关信息。

选择"1",生成CSR文件,指定 /root目录; 此时已经在 /root目录下生成 vmca_issued_csr.csrvmca_issued_key.key两个文件,我们只需要使用vmca_issued_csr.csr文件,用于签发VMCA中间CA。

使用企业根(Root)CA签发VMCA中间CA证书

由于VMCA是中间CA,我们直接使用企业根CA进行签发,并将企业根(Root)CA追加到签发后的 vmca_issued.pem文件中。

cd /root/corp-ca/intermediate/mgmt-vc.corp.local
cp /root/vmca_issued_csr.csr .
cfssl sign -ca ../../ca/root-ca.pem -ca-key ../../ca/root-ca-key.pem --config config.json vmca_issued_csr.csr | cfssljson -bare vmca_issued
cat ../../ca/root-ca.pem >> vmca_issued.pem

导入签名后的VMCA中间CA证书到vCenter Server中

将上一步签发的 vmca_issued.pem文件拷贝到vCenter Server的 /root目录下。

小技巧:可以直接复制粘贴 vmca_iaaued.pem到vCenter中。

回到vCenter的证书管理页面,

  1. 选择"2. Import custom certificate(s) and key(s) to replace existing VMCA Root Signing certificate"
  2. 输入证书名称(/root/vmca_issued.pem)和key(/root/vmca_issued_key.key)名称
  3. 选择"Y"
  4. 等待证书替换完成,根据情况,可能需要10-20分钟。

登录vSphere Web Client验证证书

提示:出于安全因素,vSphere Web Client默认签发证书有效期为2年,在证书到期前,vCenter会提示您续约证书,您只需要在vCenter中续约机器证书即可。

修改ESXi主机证书配置信息

  1. 登录vSphere Web Client;
  2. 选中vCenter实例->配置->高级配置;
  3. 您可以修改下面的ESXi主机相关证书信息,用于VMCA为ESXi主机签发证书;
  • vpxd.certmgmt.certs.cn.country=CN
  • vpxd.certmgmt.certs.cn.email=liguoqiang@corp.local
  • vpxd.certmgmt.certs.cn.localityName=Changchun
  • vpxd.certmgmt.certs.cn.organizationalUnitName=DevOps
  • vpxd.certmgmt.certs.cn.organizationName=VMware
  • vpxd.certmgmt.certs.cn.state=Jilin
  • vpxd.certmgmt.certs.daysValid=1825
  • vpxd.certmgmt.certs.minutesBefore=10

替换ESXi主机证书为新VMCA签发证书

  1. 选择ESXi主机;
  2. 配置->系统->证书;
  3. 点击"刷新"按钮,更新证书;
  4. 重复1-3步,更新其他ESXi主机证书;

添加新ESXi主机到vCenter Server,验证证书自动替换

当完成VMCA证书替换后,新增加ESXi主机的自签名证书将自动替换为VMCA签发的证书,时间为5年

提示1:当替换VMCA证书为企业中间CA证书后,默认情况24小时内,无法添加新的ESXi主机到数据中心中,如果希望修改默认值,参考提示2的VMwareKB。 提示2:VMware KB 修改添加主机时间

故障排查-VMCA日志位置

如果您在部署证书遇到问题,可以通过查看以下两个日志文件排查。

/var/log/vmware/vmcad/certificate-manager.log
/var/log/vmware/certificatemanagement/certificatemanagement-svcs.log

完成

至此,我们完成了vCenter Server的VMCA中间CA证书签发和替换工作,在中间CA模式下,所有证书都由VMCA中间CA自动签发,并能获得受信任的体验。


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注