1 问题的提出:
Ovirt对于主机设置的时间年限是5年。5年到期之后,需要更新主机的证书。正常情况下,重新添加主机,就自动完成了主机证书的更新。然而,往往由于误操作,或者不可操作(本地存储),导致主机无法删除,此时需要强制更新主机上的证书。
2 更新哪些证书?
如上所述,需要更新9个证书。
3 如何更新?
总共分两步,第一步生成证书,第二步将生成的证书部署到表中的位置。
(1) 生成证书。
1) 在主机上(engine上也可以)创建一个文件夹test。在此目录下进行操作。首先将engine上的两个证书文件,拷贝到此目录下。
将engine的 ca.pem和private/ca.pem拷贝到当前test目录下,并且分别改名称为cacert.pem, cakey.pem。engine的ca.pem目录为
/etc/pki/ovirt-engine/ca.pem
/etc/pki/ovirt-engine/private/ca.pem
2) 执行命令
[root@www test]#certtool –generate-privkey > host1_server_key.pem
Generating a 2048 bit RSA private key…
3) 生成模板
[root@www test]# vi host1_server_template.info
organization = center.com 注:组织名字
cn = www.server1.com 注:cn 为 server的主机名
signing_key
encryption_key
tls_www_client
tls_www_server
expiration_days = 700 注:有效时间
4) 执行命令
[root@www test]# certtool –generate-certificate \
> –template host1_server_template.info \
> –load-privkey host1_server_key.pem \
> –load-ca-certificate cacert.pem \ 注:为center的ca.pem
> –load-ca-privkey cakey.pem \ 注:为center的private/ca.pem
> –outfile host1_server_certificate.pem
经过上述操作,在test文件夹下,获得了host1_server_key.pem, host1_server_certificate.pem两个文件,以及从center获得的cacart.pem文件。
(2) 将生成的pem文件,以及engine的ca证书,进行部署。
根据表格的要求进行部署。
1) 用engine的cacart.pem替换当前的 /etc/pki/vdsm/certs/cacert.pem
2) 用cp host1_server_certificate.pem /etc/pki/vdsm/certs/vdsmcert.pem 进行替换。
3) 用cp host1_server_key.pem /etc/pki/vdsm/keys/vdsmkey.pem 进行替换。
经过上述三步,vdsm目录替换完毕,进入libvirt-spice目录。
4) cp /etc/pki/vdsm/keys/vdsmkey.pem server-key.pem
5) cp /etc/pki/vdsm/certs/vdsmcert.pem server-cert.pem
6) cp /etc/pki/vdsm/certs/cacert.pem ca-cert.pem
经过上述三步,qemu/libvirt替换完毕,进入libvirt目录
7) cp /etc/pki/vdsm/certs/vdsmcert.pem clientcert.pem
8) cp /etc/pki/vdsm/keys/vdsmkey.pem ./private/clientkey.pem
9) cp /etc/pki/vdsm/cacert.pem /etc/pki/CA/cacert.pem
此时,9个证书全部被刷新。就可以重新进行操作了。
4 如何验证证书刷新成功?
在engine上执行如下命令
# openssl s_client \
-connect the_ip_of_host:54321 \
-cert /etc/pki/ovirt-engine/certs/engine.cer \
-key /etc/pki/ovirt-engine/keys/engine_id_rsa \
-CAfile /etc/pki/ovirt-engine/ca.pem
5 参考文献
1)http://www.ovirt.org/Features/PKI
2)https://blog.51cto.com/phpme/2313592?source=dra
3)https://www.ovirt.org/develop/release-management/features/infra/pki.html