在安装完VMware虚拟化以后,虚拟化系统会自带证书,对于vshpere web client来说,凡是新的WEB环境,都会提示接受自带的签名证书。并且,这些证书由VMware自带的证书颁发机构VMCA来颁发和续期。而VMCA颁发的证书用来加密VMware各组件之间通信流量,保证数据传输的安全。大部分企业的虚拟化环境,都是内部局域网,vsphere 的通信流量安全对于当前企业的其他安全(数据,网络,门户,等等)来说,可谓是不值一提。而我忽然来了性趣,想从头到尾摸摸这个vsphere的证书。百度上用遍了各种关键词,没搜到我想要的内容,要么是千篇一律的复制,要么就是复制VMware官方KB,看的我云里雾里,毫无头绪。高潮依然很远,那种欲罢不能的感觉,谁人理解。最后求助谷歌,阅篇无数,最终摸清了前后门路。一番折腾,热血沸腾的我,心也渐渐的静了下来。现在我把过程逐一记录,便于回味。
此教程基于嵌入式 Platform Services Controller(PSC)模式的 VCSA6.7 U3,ESXi 6.7 U3,Windows 2016 CA服务器。也适用于Windows Platform Services Controller模式的VCenter!且适用于vSphere 6.x系列。

一,安装配置CA服务器

1,安装Windows CA服务器,具体过程参考这里Horizon系列之替换各组件自签名SSL证书,只看第一章节即可。
2,在CA服务器上,运行对话框或者命令提示符中输入certtmpl.msc,打开证书模板控制台。
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图1


3,右键单击从属证书颁发机构,点击复制模板。在兼容性标签里,证书颁发机构选择Windows server 2016,证书接收人,根据自己的客户端环境选择。
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图2

4,点击常规标签,输入模板显示名称:vSphere 6.x VMCA,并勾选在 Active Directory 中发布证书
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图3


5,点击扩展标签,单击密钥用法,然后单击编辑。勾选数字签名、证书签名和CRL 签名和使这个扩展成为关键扩展
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图4


6,点击安全标签,选中Authenticated Users和Administrator,确保勾选写入和注册权限
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图5


7,在运行对话框或者命令提示符中输入certsrv.msc,右键单击证书模板,然后单击新建-要发布的证书模板
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图6


8,选择新建的vSphere 6.x VMCA模板。单击确定
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图7

二,配置自定义VMCA

1,通过5480或者DCUI开启VCSA的ssh访问,然后登录ssh,输入下面的命令
shell.set —enable True shell chsh -s /bin/bash root mkdir /tmp/certs
Shell
复制
启用 Bash shell:shell.set —enable True #这一步不输入也可以。
访问 Bash shell:shell
将默认的Appliance Shell更改为 Bash Shell:chsh -s /bin/bash root
生成csr文件使用的临时目录:mkdir /tmp/certs
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图8


2,输入/usr/lib/vmware-vmca/bin/certificate-manager,打开证书管理界面。
如果是Windows Platform Services Controller模式的VC,则路径为:C:\Program Files\VMware\vCenter Server\vmcad\certificate-manager,后续步骤中需要的路径,输入Windows的绝对路径即可。
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图9


3,输入2,以选择(Replace VMCA Root certificate with Custom Signing Certificate and replace all Certificates)
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图10


参数具体说明:
#输入n,然后输入VC的SSO用户名和密码 Do you wish to generate all certificates using configuration file : Option[Y/N] ? : n Please provide valid SSO and VC privileged user credential to perform certificate operations. Enter username [Administrator@vsphere.local]:administrator@vdi.com Enter password: Please configure certool.cfg with proper values before proceeding to next step. Press Enter key to skip optional parameters or use Default value. #这里自定义,国家,省,市,组织等信息 Enter proper value for ‘Country’ [Default value : US] : CN #这里输入VC的FQDN Enter proper value for ‘Name’ [Default value : CA] : vcenter.lzuvdi.com Enter proper value for ‘Organization’ [Default value : VMware] : lzuvdi Enter proper value for ‘OrgUnit’ [Default value : VMware Engineering] : lzuvdi Enter proper value for ‘State’ [Default value : California] : gansu Enter proper value for ‘Locality’ [Default value : Palo Alto] : lanzhou #输入VC的IP Enter proper value for ‘IPAddress’ (Provide comma separated values for multiple IP addresses) [optional] : 192.168.80.105 #这里自定义邮箱,格式必须是邮箱格式 Enter proper value for ‘Email’ [Default value : email@acme.com] : mail@lzuvdi.com #下面两个对话都输入VC的FQDN Enter proper value for ‘Hostname’ (Provide comma separated values for multiple Hostname entries) [Enter valid Fully Qualified Domain Name(FQDN), For Example : example.domain.com] : vcenter.lzuvdi.com Enter proper value for VMCA ‘Name’ :vcenter.lzuvdi.com
Shell
复制
4,输入1,以选择Generate Certificate Signing Request(s) and Key(s) for VMCA Root Signing certificate,输入第一步新建的临时目录/tmp/certs,回车,会生成csr文件,此时,停留在这个界面即可。
Windows Platform Services Controller下注意路径的书写格式,比如 D:\vmca\customssl
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图11


5,用ftp工具登录VCSA,导航到证书存放的临时目录,已经生成csr和key。vmca_issued_csr.csr和vmca_issued_key.key
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图12


6,下载vmca_issued_csr.csr到本地,并改名为vmca.csr,用记事本打开vmca.csr,全选并复制里面的内容
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图13


7,浏览器输入http://CA服务器IP/certsrv,回车,如我的:http://192.168.80.115/certsrv,输入域管理员用户名和密码,注意用户名的书写格式。
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图14


8,点击申请证书,单击高级证书申请,在Base-64 编码的证书申请输入框中粘贴第6步复制的csr内容,证书模板选择vSphere 6.x VMCA,点击提交
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图15


9,选择Base 64 编码,单击下载证书,保存文件名称为vmca.cer
10,返回到证书申请主页,点击下载 CA 证书、证书链或 CRL,选择Base 64,单击下载 CA 证书,保存文件名称为root.cer,用记事本打开root.cer,全选并复制里面的内容
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图16


11,用记事本打开第9步保存的vmca.cer,在——-END CERTIFICATE——-下面粘贴上一步复制的内容,并保存
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图17

三,更换VMCA证书

1,把vmca.cer上传到/tmp/certs,返回到ssh界面,输入1,以选择Continue to importing Custom certificate(s) and key(s) for VMCA Root Signing certificate,
2,输入证书和key的路径,证书是我们合成的vmca.cer,key是请求生成csr文件时生成的key文件,
Please provide valid custom certificate for Root. File : /tmp/certs/vmca.cer Please provide valid custom key for Root. File : /tmp/certs/vmcaissued_key.key
Shel
复制_
Windows Platform Services Controller下注意证书路径的书写格式,比如 D:\vmca\customssl\vmca.cer
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图18


3,输入y ,进行更换操作,整个更换过程,大概需要10分钟左右,在这个过程中VC无法访问,Windows Platform Services Controller模式的VC可能会更慢,需耐心等待。
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图19


4,更换成功提示
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图20


5,域终端(加域客户端成员)中测试证书
浏览器中打开VC的IP地址,小绿锁出现,且状态正常
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图21


再来试试用FQDN,小绿锁出现,且状态正常
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图22


6,独立终端(独立工作组)中测试证书
提示链接不安全
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图23


试试用FQDN,一样会警告
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图24


这是怎么回事呢,域客户端会自动从域证书服务器中接收并安装当前环境中CA的根证书,这样,VMCA就有了归属的颁发机构,而独立工作站不会有这个根证书,如何解决,安装根证书即可。
7,在独立工作站中安装第三章节第10步保存的root.cer证书,双击打开证书,点击安装证书,选择本地计算机,单击下一步,选择将所有的证书都放入下列存储,在证书存储中选择受信任的根证书颁发机构,下一步,直至完成。
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图25


8,在浏览器中输入VC的IP
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图26


输入FQDN
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图27


让人欣慰的小绿锁又回来了!
9,如果需要安装VC的VMCA证书,则直接安装第二章节第11步保存的vmca.cer证书即可。这里可以通过域控的GPO来给客户端安装。
编辑GPO并浏览到计算机管理—策略—Windows设置—安全设置—公钥策略-受信任的根证书颁发机构,右键单击导入。导入上面的CA证书,然后执行gpupdate /force刷新策略,域客户端重启即可。
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图28


独立工作站双击CA证书,安装到受信任的根证书颁发机构即可。
这一步操作是为了让客户端用FQDN登录VCSA的5480的证书不报错,如果VC是基于Windows的,则这些操作可省略。
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图29

四,VC组件证书续期

1,登录VC,打开证书管理界面
计算机 SSL 证书
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图30


解决方案证书
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图31


篇幅关系,我只演示续期vsphere-webclient证书,当前证书有效期至:2022/5/7 上午11:07
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图32


点击续订
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图33


提示续订成功
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图34

五,ESXi主机证书续期

1,在VC管理界面,右键单击主机,选择证书,点击续订证书,有可能会报如下错误
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图35

2,点击VC的FQDN名称,单击设置,点击高级设置,单击编辑设置,搜索vpxd.certmgmt.certs.minutesBefore,把值1440改为10,然后保存。
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图36


根据第1步操作,依次为集群内所有主机续订证书,续期后的证书状态
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图37


3,登录ESXi主机测试证书,证书正常
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图38


因为这个证书没有ESXi主机的IP信息,所以用IP登录还是会提示证书不可信。如果想用IP登录,那么VC中加入主机的时候就要用IP。
VMware之使用自签名证书替换vSphere各组件自带SSL证书 - 图39


参考链接:
https://kb.vmware.com/articleview?docid=2111219&lang=zh_CN https://kb.vmware.com/s/article/2112009
https://kb.vmware.com/s/article/2112016
https://kb.vmware.com/s/article/2107727
https://kb.vmware.com/s/article/2123386
https://communities.vmware.com/thread/613940