type
status
date
summary
slug
tags
category
password
icon
低于 4.5 版本的 oVirt ,所有证书的生存期均为 398 天。 从 oVirt 版本 4.5 开始,虚拟机管理程序和引擎之间的自签名内部证书的生命周期为五年。Web 浏览器可见的证书仍遵循标准的 398 天生存期,并且必须每年续订一次(其实在正常情况下,重新添加主机,就自动完成了主机证书的更新)。
- 查看当前证书有效时间
- 查看管理台(Engine)证书的有效时间范围
- 查看主机(node)证书的有效时间范围
不要让证书过期。如果它们过期,主机和引擎将停止响应,并且恢复是一个容易出错且耗时的过程。
一、官方建议方式 - 续订
oVirt官方有对证书续订做出了说明:oVirt官方说明链接,以下节选自官方:
1. 主机(Host)
- 在管理门户中,单击计算→主机.
- 点击管理→维护,然后单击确定。 虚拟机应自动从主机迁移。如果它们已固定或无法迁移,则必须关闭它们。
- 当主机处于维护模式并且此主机上不再有剩余虚拟机时,单击安装注册证书.
- 注册完成后,单击管理→激活.
2. 引擎(Engine)
- 仅限自托管引擎(HostedEngine方式):登录到主机并将其置于全局维护模式。
- 自托管引擎(HostedEngine方式)和独立引擎:登录引擎并运行
engine-setup
该脚本会提示您提出配置问题。 根据需要回答问题或使用答案文件。
engine-setup
- 在提示
engine-setup
后输入:Yes
- 仅限自托管引擎(HostedEngine方式):登录主机并禁用全局维护模式:
- 注:官方方式只是运行内置的生成证书的脚本,也就是说重新生成的证书还是398天或者5年
二、修改证书有效期并更新部署
更多的时候我们希望证书的续订不必麻烦,一年一续期还是有点繁琐了。。。
下述解决方案适用于数据中心中多于一台主机的情况,HostedEngine方式需要在以下方式外再进一步操作。
1. 查看当前证书有效时间
- 查看管理台(Engine)证书的有效时间范围
- 查看主机(node)证书的有效时间范围
2. 修改时间(选做)
如果已经过期,需要将主机(node)和管理台(Engine)的系统时间到当前证书有效时间范围内,让状态恢复正常。
3. 重新生成证书
① 修改证书的有效时间
- 管理台(Engine)终端
② 重新生成根证书
注:默认根证书的有效期为10年,可以不执行该操作
- 管理台(Engine)终端
- 生成根证书
- 备份旧证书,新证书替换旧证书,最后查看情况
③ 设置HA的维护模式为global模式
- 主机(node)终端
④ 执行脚本生成证书
- 管理台(Engine)终端
- 重启相关服务(Engine)
- 执行完上面的脚本会重新更新以下证书
⑤ 关闭HA的全局维护模式
- 主机(node)终端
⑥ 修改 engine 数据库信息
- 管理台(Engine)终端
- 重启管理台服务
4. 有主机执行“注册证书”操作
操作步骤:
- 首先迁移主机上的虚拟机到其它主机上(关闭也可以)
- 然后主机执行“维护”操作。
- 然后点击“注册证书”按钮。
- 注册证书操作完成后,主机会变为维护状态,点击“激活”按钮将主机激活。
- 在主机终端中执行以下命令:
5. 再次修改时间(选做)
- 将主机和管理台的系统时间调整到当前时间
三、强制更新主机上的证书
- 之前说到,在正常情况下,重新添加主机,就可以自动完成了主机证书的更新。
- 但是一般不这么做,因为往往由于误操作,或者不可操作(本地存储),会导致主机无法删除。
- 所以,需要强制更新主机上的证书。
HostedEngine方式安装部署且只有一个数据中心的oVirt也存在这样的问题:使用Engine的方式为Engine所在Host安装证书会发现,由于Engine作为虚拟机存在于该Host,该Host无法进入维护模式,因而无法安装新的延期证书
也就是说,通过上述方式,是可以完成
- 除Engine所在宿主Host外其他主机Host的证书更新及安装
- Engine的证书的更新及安装
无法完成
- Engine所在Host的证书更新及安装。
1. 确认主机需更新证书
- 需要更新的9个证书如下:
- 需要生成证书,将生成的证书部署到表中的位置
Component | File | Description |
vdsm | /etc/pki/vdsm/certs/cacert.pem | trusted engine certificate, engine internal CA |
ㅤ | /etc/pki/vdsm/certs/vdsmcert.pem | vdsm certificate |
ㅤ | /etc/pki/vdsm/keys/vdsmkey.pem | vdsm key |
qemu/libvirt | /etc/pki/vdsm/libvirt-spice/ca-cert.pem | qemu spice pki store, same as vdsm ca |
ㅤ | /etc/pki/vdsm/libvirt-spice/server-key.pem | qemu spice pki store, same as vdsm key |
ㅤ | /etc/pki/vdsm/libvirt-spice/server-cert.pem | qemu spice pki store, same as vdsm certificate |
libvirt | /etc/pki/libvirt/clientcert.pem | libvirt certificate, same as vdsm certificate |
ㅤ | /etc/pki/libvirt/private/clientkey.pem | libvirt key, same as vdsm key |
ㅤ | /etc/pki/CA/cacert.pem | libvirt trust store |
2. 生成证书并部署
① 从engine上获取旧证书
在主机上(engine上也可以),这里以engine所在host为例
- 主机(node)终端
- 创建一个文件夹test(在此目录下进行操作)
首先将engine上的两个证书文件,拷贝到此目录下。
- 管理台(Engine)终端
执行命令
② 生成host新证书
- 主机(node)终端
- 生成模板文件
- 填写以下内容
- 其中
- organization 组织名字,安装部署时设置
- cn 该host的主机名,安装部署时设置,可以从/etc/hosts中查看
- expiration_days 有效时间,这里像上述一样填3980
- 执行命令
- 经操作,在test文件夹下,获得了
- host1_server_key.pem
- host1_server_certificate.pem
- 从engine获得的ca.pem文件(已经改名)
- cacert.pem
- cakey.pem
- 共计四个所需文件
③ 部署证书
将生成的pem文件,以及engine的ca根据表格的要求进行部署。
- 主机(node)终端
Ⅰ vdsm
目录
/etc/pki/vdsm/
目录
1) 用engine的cacert.pem替换当前的 /etc/pki/vdsm/certs/cacert.pem
2) 用cp host1_server_certificate.pem /etc/pki/vdsm/certs/vdsmcert.pem 进行替换。
3) 用
host1_server_key.pem
替换/etc/pki/vdsm/keys/vdsmkey.pem
- 经过上述三步,vdsm目录替换完毕
Ⅱ qemu/libvirt
目录
/etc/pki/vdsm/libvirt-spice/
目录
1)
/etc/pki/vdsm/libvirt-spice/server-key.pem
2)
/etc/pki/vdsm/libvirt-spice/server-cert.pem
3)
/etc/pki/vdsm/libvirt-spice/ca-cert.pem
- 经过上述三步,
qemu/libvirt
替换完毕
Ⅲ libvirt
目录
1)
/etc/pki/libvirt/clientcert.pem
2)
/etc/pki/libvirt/private/clientkey.pem
3)
/etc/pki/CA/cacert.pem
- 经过上述三步,
libvirt
替换完毕
④ 验证证书刷新成功
9个证书全部被刷新,就可以重新进行操作了。
在engine上执行如下命令,其中
-connect
后面要改为node的IP或域名:54321
3. 查看node证书
- 查看主机(node)证书的有效时间范围
- 作者:PH3C
- 链接:https://notion.966699.xyz//article/oVirt-cert
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。