自上个月开始,陆续有客户和粉丝私信:由于vCenter证书过期,出现无法访问控制台的情况。其实这个问题在VMware KB(https://kb.vmware.com/s/article/79248)已经有非常详尽的描述。简单来说,从6.5U2版本以后,vCenter自签名证书有效期只有2年,需要定期更新。

在晓冬看来,这是提高VMware管理平台安全性的一大改良,企业管理员理应遵循。不过也有用户表示,在这种机制下,需要管理员每2年更新一次vCenter证书,有些“麻烦”。其实,管理员通过vCenter自带的VMCA证书颁发机构,可以非常方便地进行vCenter证书的更新操作。不过今天晓冬临时加番,是想演示“如何用企业CA更新vCenter证书”。当然,如果使用自定义vSphere证书的方式,管理员可以根据自己的实际情况定义证书有效期为3年或者5年甚至更长。

接下来,就请各位跟随晓冬一起,一步步来实践用Windows Server的企业CA为vCenter签发证书。

0x01. Windows CA证书模板

打开证书模板管理器,基于Web服务器创建新的模板certtmpl.msc🧶2x13 自定义vSphere证书 - 图22

定义模板显示名称,如vSphere 6.x管理员可以根据实际的需要,定义证书的有效期🧶2x13 自定义vSphere证书 - 图23

在扩展页面,编辑应用程序策略🧶2x13 自定义vSphere证书 - 图24

将服务器身份验证删除注:如果存在客户端身份验证,同样选择删除🧶2x13 自定义vSphere证书 - 图25

编辑密钥用法🧶2x13 自定义vSphere证书 - 图26

勾选“数字签名为原件的证明”🧶2x13 自定义vSphere证书 - 图27

确认使用者名称页面下,已经勾选了“在请求中提供”🧶2x13 自定义vSphere证书 - 图28

确认证书模板创建完成🧶2x13 自定义vSphere证书 - 图29

打开证书颁发机构,在证书模板,选择新建-要颁发的证书模板🧶2x13 自定义vSphere证书 - 图30

发布创建的vSphere 6.x模板🧶2x13 自定义vSphere证书 - 图31



0x02. 申请全新的vCenter证书

访问VCSA命令行,执行证书管理器# /usr/lib/vmware-vmca/bin/certificate-manager



🧶2x13 自定义vSphere证书 - 图32

输入1,替换服务器证书根据提示,输入一系列证书请求文件需要的字段

🧶2x13 自定义vSphere证书 - 图33

完成证书请求文件和私钥创建后,授权scp登录# chsh -s /bin/bash root

🧶2x13 自定义vSphere证书 - 图34

将证书请求文件csr下载到本地

🧶2x13 自定义vSphere证书 - 图35

通过CA网申证书,模板选择为“vSphere6.x”

🧶2x13 自定义vSphere证书 - 图36

下载颁发的证书和CA证书注:编码为Base 64编码

🧶2x13 自定义vSphere证书 - 图37

上传服务器证书和CA证书到vCenter的/tmp

🧶2x13 自定义vSphere证书 - 图38


0x03. 替换vCenter证书

重新运行vmca的证书管理器输入2,替换证书注:依次指定服务器证书、服务器私钥和CA证书

🧶2x13 自定义vSphere证书 - 图39

等待VCSA自动替换证书完成

🧶2x13 自定义vSphere证书 - 图40



🧶2x13 自定义vSphere证书 - 图41

等待证书替换完成,服务器正常启动后,可以看到证书已经被替换,并且无证书报错提示

🧶2x13 自定义vSphere证书 - 图42


通过企业CA为包括vCenter、ESXi甚至更多的服务器签发证书是常见的操作,这样可以满足企业软件定义数据中心的所有组件均有相同的证书链信任关系。比如,管理员可以通过AD组策略,将企业CA的根证书在所有加入域的成员服务器上进行安装,从而当管理员或者用户访问包括VMware产品门户(如Horizon、vRealize Automation等)均不会出现证书不受信任等告警。

=============

晓冬的虚拟云网络已经就绪,下一篇公众号预告:VMware VeloCloud安装与初始化配置。