通过微软证书服务器自签名证书替换VMware vCenter证书:达到域内主机访问vCenter Server是信任状态
- 开始之前的必要条件是已经搭建好微软AD域和对应的证书服务器。
- 确认这些都没有问题,才可以继续下一步操作。
- 已经通过域名的形式安装好了vCenter Server,并且可以正常访问。
整体操作步骤逻辑
- SSH登录vCenter Server,生成自签名的CSR和私钥key。
- 在微软证书服务器创建添加证书模板。
- 确认证书模板没有问题,然后拿着刚在vCenter Server中生成CSR去微软证书服务器申请证书。
- 下载好的申请的证书链,此时格式是p7b格式,将证书链上传到vCenter Server服务器中。
- 将证书链p7b格式转换为cer格式的证书。
- 拿着上面转换的cer证书和私钥key在vCenter Server中导入证书。
- 微软域内环境中的任何一台加入域的主机测试验证访问vCenter Server的域名,确认其访问的https是否为信任。
- 若为信任,则证书替换成功。
操作之前参考文档
- 我在实际操作之前是参考下面3篇博客,写的非常详细详实,按照顺序步骤执行操作即可成功。
- 前提条件是自己已经搭建好微软证书服务器,并确认运行颁发证书都没有问题,且vCenter Server也可正常访问。
- 3篇博客文章如下:
https://blog.csdn.net/NOWSHUT/article/details/133952421
https://blog.csdn.net/NOWSHUT/article/details/133952479
https://blog.csdn.net/NOWSHUT/article/details/133952535
我实战验证操作过程
申请CSR证书和私钥
添加微软证书模板
- 先提下,微软证书服务器如果是域内环境,基础架构是先搭建一台rootCA根证书,然后再基于这台rootCA根证书搭建一台中级证书服务器,之后rootCA证书服务器关机即可,后面没她什么事情了,当然需要用到的时候再开机。
- 真正后面干活的是这台中级证书服务器,所以此处操作是在这台中级证书服务器中执行一序列操作。
- 基础操作步骤:
- 执行命令certtmpl.msc
- 此时会直接打开证书模板,然后找到Subordinate Certificate Authority将其拷贝一份模板名称命名为:vSphere 8.x for VMCA
- 在这个新模板上面需要配置的信息看如下截图。
- 上述Security部分有个坑,就是默认情况下权限是不够的,导致后面在申请证书的页面死活无法看到这里配置的证书模板,所以如果图方便,就将这个Security部分的所有用户Allow部分全部勾选。
- 正常情况下是没有问题,会立刻生效,如果不生效,就在域控里面执行下组策略更新,然后重启证书服务器等等操作。
- 上述操作完成之后,就可以将刚刚添加模板,添加到证书模板然后颁发即可,此处操作就是上面说的坑,如果不生效,就按照上述操作流程走一遍。
- 添加证书模板颁发步骤。
- 运行执行命令certsrv.msc
- 选中Certificate Templates --> New --> Certificate Template Issue
- 找到之前新建的vSphere 8.x for VMCA 颁发即可
向微软证书服务器申请自签名证书链
- 正常情况搭建好这个Web证书签名服务,第一次访问需要输入域控账户和密码,或者当前中级证书服务器的本地账户和密码。
- 进入之后点击Request a Certificate
- 点击advanced certificate request
- 将上述第一步在vCenter Server中申请的CSR文件内容粘贴进去(vmca_issued_csr.csr)
-
如果上述都没有问题,下载下来的证书链就是certnew.p7b,将这个名称重命名为cachain.p7b 然后将其上传到vCenter Server的/root/vmca/目录下
-
使用命令将其转换为cer格式
-
openssl pkcs7 -print_certs -in cachain.p7b -out vmca_issued.cer
-
最终需要用到的证书和私钥名称如下:
自签名根证书链:vmca_issued.cer
自定义密钥:vmca_issued_key.key -
在vCenter Server后台执行命令:/usr/lib/vmware-vmca/bin/certificate-manager
-
按照流程填写操作,跟上述第一步填写内容一样即可。
-
最后一步选中2,导入自定义证书,然后就是等待,这过程需要花几分钟,当显示100%成功了,说明所有操作完毕,可以使用vCenter Server的域名在域内的任何一台主机访问,确认https显示信任状态即可。