如何更改VMware Vcenter Server,Replication Server和Site Recovery Manager捆绑包的证书

你好!



使用vmware产品的任何人都知道或不知道证书问题会导致很多痛苦。因此,为了避免踩到这种情况,我将展示如何制作和更改产品证书,例如:



  • VMware Vcenter服务器6.7
  • VMware Replication Server 8.3
  • VMware Site Recovery Manager 8.3


为此,我们需要:



  • 证明书
  • 油灰
  • 有点耐心


准备证书,我会用一个普通的Windows Server 2019与角色Active Directory证书服务OpenSSL的v1.1.1h



您可以在这里下载



1.创建证书



我将使用本地服务器来颁发证书,但是此方法适用于颁发证书以及在商业站点上。



让我们准备向证书颁发机构的请求。



我给了像FQDN这样的名字:



  • Vcenter Server名为vc.home.local和ip 192.168.233.11
  • 我将VMware Replication Server命名为vr.home.local和ip 192.168.233.12
  • VMware Site Recovery Manage也为srm.home.local和ip 192.168.233.13


对于这些名称,我们将在openssl程序中准备请求和私钥为此,我们将制作一个包含其内容的小型配置文件vc.cfg接下来,对于每个新服务器,我将通过替换服务器名称和ip地址来更改此文件的内容:



[req]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
countryName = RU
stateOrProvinceName = RO
localityName = RnD
organizationName = HOME
commonName = vc.home.local ()
emailAddress = root@home.local
[v3_req]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment, keyAgreement
subjectAltName = @alt_names
[alt_names]
DNS.1 = vc.home.local ()
IP.2 = 192.168.233.11 ()


接下来,使用openssl



1.1做vc.home.local



openssl req -batch -new -newkey rsa:2048 -nodes -keyout vc.home.local.key -out vc.home.local.req -config vc.cfg


1.2在vc.cfg中更改服务器的名称和IP,然后释放密钥并请求vr.home.local



openssl req -batch -new -newkey rsa:2048 -nodes -keyout vr.home.local.key -out vr.home.local.req -config vc.cfg


1.3在vc.cfg中更改服务器的名称和IP,然后释放密钥并请求srm.home.local



openssl req -batch -new -newkey rsa:2048 -nodes -keyout srm.home.local.key -out srm.home.local.req -config vc.cfg


1.4此外,您还需要用于vcenter服务(vpxd,vsphere-webclient,vpxd-extension)的证书,

我们使用以下命令进行制作:



openssl req -new -newkey rsa:2048 -nodes -keyout vpxd.key -out vpxd.req


我们将进入一个小向导,在其中输入有关自己或公司的信息。确保在“公用名称”字段中输入服务的名称。对于其余服务,我们将重复此过程。结果,我们得到了一个私钥和一个证书请求。







生成密钥和证书请求



现在所有请求和密钥都准备就绪,让我们开始颁发证书。进入证书发放中心。启动证书颁发机构控制台







接下来,在服务器根目录上右键单击(pkm),然后选择发出新请求。







选择带有req扩展名的请求文件。



转到“待处理的请求”菜单。如果将其清空,请按F5键,窗口将刷新。接下来,单击pkm,然后选择“颁发”:







接下来,转到“颁发的证书”菜单并打开我们的证书。







接下来,我们需要将其保存到磁盘。为此,请转到“合成”选项卡,然后单击“复制到文件”按钮...接下来,将出现一个向导来保存文件,在这种情况下,我们需要选择Base64和文件名vpxd.crt:







保存证书。



我们对所有证书重复发行过程/



我们仍然需要根证书。为此,请打开任何证书,转到“证书路径”选项卡,选择我们的根证书,然后单击“查看证书”按钮。此外,我们还将像以前的所有文件一样保存它。







而且,对于VMware Replication ServerVMware Site Recovery Manager而言,还不止这些。我们需要一个证书和密钥容器。 pfx文件,制作起来非常容易,我们需要私钥和证书文件:



openssl pkcs12 -export -out vr.home.local.pfx -inkey vr.home.local.key -in vr.home.local.crt


OpenSSL要求输入密码,提供密码并在出口处获得令人垂涎的文件。

这样就完成了证书的创建并继续安装它们。



2.让我们开始使用Vcenter进行更改



为此,我们转到管理部分,然后转到证书部分。以管理员身份登录。







管理证书的部分。



接下来,首先在控制面板中添加一个根证书或受信任的根证书。滚动到最后,然后按添加。我们选择证书ca.crt







添加受信任的根证书



接下来,我们通过菜单项“替换”来更改当前证书:







选择我们为 vcenter

创建的证书对于服务,我们选择在第1.4段中创建的服务的证书



对于证书__MACHINE_CERT并将证书vc.home.local机器加工在1.1段







我们已经替换了控制面板上所有可用的证书。如果您的

配置缺少VMware Replication Server和VMware Site Recovery Manager的组件,则可以结束此过程,并在重新引导服务器后使用VCentre。如果您使用独立服务器颁发证书,我建议您制作10年或更长时间的证书。如果您购买,请看情况。



为了使浏览器正确识别证书,您需要在操作系统证书存储中安装根证书。



3.更改VMware Replication Server上的证书



首先,您需要在vr服务器上安装根证书,因为它不在标准的Web界面中。为此,我们需要通过ssh登录服务器,但是默认情况下它是禁用的。让我们打开它。打开虚拟机控制台,然后以root用户身份登录。

我们激活ssh服务器。



/usr/bin/enable-sshd.sh


之后,您可以通过腻子连接到服务器。



所有根ca证书都在/opt/vmware/hms/security/hms-truststore.jks路径下的jks容器中,



但是该容器具有密码,让我们使用以下命令找出它:



/opt/vmware/hms/bin/hms-configtool -cmd list | grep keystore


接下来,我们将ca.crt保存到服务器,通常通过文本编辑器执行此操作,在本地计算机上,我使用记事本打开证书,然后使用粘贴并保存的vi编辑器在远程计算机上将其复制到剪贴板。之后,我们可以使用以下命令将证书写入容器:



/usr/java/default/bin/keytool -import -trustcacerts -alias root -file /root/ca.crt -keystore /opt/vmware/hms/security/hms-truststore.jks -storepass     


然后,我们对添加请求说“就是这样,我们已经成功添加了根证书。



我们进入位于vr.home.local的服务器控制面板:5480



转到“配置”选项卡的“上载PKCS12(* .pfx)”文件字段,

选择我们的pfx文件。单击上载并安装







vr服务器配置。



重新启动Web服务器并登录后,我们尝试使用“保存并重新启动服务”按钮保存配置:







并收到错误消息:



Unhandled exception com.vmware.vim.vmomi.client.exception.SslException: javax.net.ssl.SSLException: Certificate thumbprint mismatch, expected:


服务器告诉我们中心服务的证书打印不匹配。



打开腻子并连接到vc.home.local中心



,使用shell命令启动bash:







转到目录:



cd /usr/lib/vmidentity/tools/scripts/


我们来看看这项服务的状态:



./lstool.py list --url https://localhost/lookupservice/sdk --no-check-cert --ep-type com.vmware.cis.cs.identity.sso 2>/dev/null






如果在文本编辑器中打开我们的证书vc.home.local.crt并进行比较,结果证明这些证书是不同的。事实是,中心的Web界面不会更改所有证书。



证书的内容复制到该文件/tmp/old.crt,不要忘记的是,证书的内容必须在标签之间----- BEGIN CERTIFICATE -----和----- END CERTIFICATE -----



它应该是这样的:







现在在文本编辑器中在vc.home.local.crt中心中打开我们的新证书

,并将其复制到文件/tmp/new.crt中的vc中。



接下来,找出/tmp/old.crt文件的sha1哈希,您将需要在那里用旧的证书替换为新。



openssl x509 -in /tmp/old.crt -noout -fingerprint -sha1


接下来,运行替换脚本:



./ls_update_certs.py --url https://vc.home.local/lookupservice/sdk --fingerprint 86:0D:BB:--- ----:C7:0E:D1:3E:17:39 --certfile /tmp/new.crt --user administrator@home.local --password 


在脚本末尾,报告将包含替换证书的数量。



之后,转到vr.home.local:5480并保存配置。如果正确执行所有操作,则服务器应成功保存配置并启动服务器vr服务。







3.使用VMware Site Recovery Manage替换证书



在此服务器上,所有操作都通过“证书”菜单中的Web界面完成



我们转到管理面板srm.home.local:5480



  1. 使用添加按钮添加我们的根ca
  2. 使用CHANGE按钮更改当前证书







到此结束所有证书的更改。



谢谢大家!



All Articles