type
status
date
summary
slug
tags
category
password
icon
低于 4.5 版本的 oVirt ,所有证书的生存期均为 398 天。 从 oVirt 版本 4.5 开始,虚拟机管理程序和引擎之间的自签名内部证书的生命周期为五年。Web 浏览器可见的证书仍遵循标准的 398 天生存期,并且必须每年续订一次(其实在正常情况下,重新添加主机,就自动完成了主机证书的更新)。
  • 查看当前证书有效时间
    • 查看管理台(Engine)证书的有效时间范围
    • notion image
    • 查看主机(node)证书的有效时间范围
    • notion image
不要让证书过期。如果它们过期,主机和引擎将停止响应,并且恢复是一个容易出错且耗时的过程。

一、官方建议方式 - 续订

oVirt官方有对证书续订做出了说明:oVirt官方说明链接,以下节选自官方:

1. 主机(Host)

  1. 在管理门户中,单击计算→主机.
  1. 点击管理→维护,然后单击确定。 虚拟机应自动从主机迁移。如果它们已固定或无法迁移,则必须关闭它们。
  1. 当主机处于维护模式并且此主机上不再有剩余虚拟机时,单击安装注册证书.
  1. 注册完成后,单击管理→激活.

2. 引擎(Engine)

  1. 仅限自托管引擎(HostedEngine方式):登录到主机并将其置于全局维护模式。
    1. 自托管引擎(HostedEngine方式)和独立引擎:登录引擎并运行engine-setup
      1. 该脚本会提示您提出配置问题。 根据需要回答问题或使用答案文件。engine-setup
    1. 在提示engine-setup后输入:Yes
      1. 仅限自托管引擎(HostedEngine方式):登录主机并禁用全局维护模式:
        • 注:官方方式只是运行内置的生成证书的脚本,也就是说重新生成的证书还是398天或者5年

        二、修改证书有效期并更新部署

        更多的时候我们希望证书的续订不必麻烦,一年一续期还是有点繁琐了。。。
        下述解决方案适用于数据中心中多于一台主机的情况,HostedEngine方式需要在以下方式外再进一步操作。

        1. 查看当前证书有效时间

        • 查看管理台(Engine)证书的有效时间范围
        notion image
        • 查看主机(node)证书的有效时间范围
        notion image

        2. 修改时间(选做)

        如果已经过期,需要将主机(node)和管理台(Engine)的系统时间到当前证书有效时间范围内,让状态恢复正常。

        3. 重新生成证书

        ① 修改证书的有效时间

        • 管理台(Engine)终端
        notion image

        ② 重新生成根证书

        注:默认根证书的有效期为10年,可以不执行该操作
        • 管理台(Engine)终端
          • 生成根证书
            • notion image
          • 备份旧证书,新证书替换旧证书,最后查看情况
            • notion image

        ③ 设置HA的维护模式为global模式

        • 主机(node)终端

        ④ 执行脚本生成证书

        • 管理台(Engine)终端
        • 重启相关服务(Engine)
        • 执行完上面的脚本会重新更新以下证书
        notion image

        ⑤ 关闭HA的全局维护模式

        • 主机(node)终端

        ⑥ 修改 engine 数据库信息

        • 管理台(Engine)终端
        notion image
        • 重启管理台服务

        4. 有主机执行“注册证书”操作

        操作步骤:
        • 首先迁移主机上的虚拟机到其它主机上(关闭也可以)
        • 然后主机执行“维护”操作。
            • notion image
        • 然后点击“注册证书”按钮。
            • notion image
        • 注册证书操作完成后,主机会变为维护状态,点击“激活”按钮将主机激活。
            • notion image
        • 在主机终端中执行以下命令:

        5. 再次修改时间(选做)

        • 将主机和管理台的系统时间调整到当前时间

          三、强制更新主机上的证书

          • 之前说到,在正常情况下,重新添加主机,就可以自动完成了主机证书的更新。
            • 但是一般不这么做,因为往往由于误操作,或者不可操作(本地存储),会导致主机无法删除。
          • 所以,需要强制更新主机上的证书。
          HostedEngine方式安装部署且只有一个数据中心的oVirt也存在这样的问题:使用Engine的方式为Engine所在Host安装证书会发现,由于Engine作为虚拟机存在于该Host,该Host无法进入维护模式,因而无法安装新的延期证书
          也就是说,通过上述方式,是可以完成
          • 除Engine所在宿主Host外其他主机Host的证书更新及安装
          • Engine的证书的更新及安装
          无法完成
          • Engine所在Host的证书更新及安装。

          1. 确认主机需更新证书

          • 需要更新的9个证书如下:
            • 需要生成证书,将生成的证书部署到表中的位置
          notion image
          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)终端
              执行命令
              notion image

              ② 生成host新证书

              • 主机(node)终端
              • 生成模板文件
              • 填写以下内容
              • 其中
                • organization 组织名字,安装部署时设置
                • cn 该host的主机名,安装部署时设置,可以从/etc/hosts中查看
                • expiration_days 有效时间,这里像上述一样填3980
              • 执行命令
              • 经操作,在test文件夹下,获得了
              1. host1_server_key.pem
              1. host1_server_certificate.pem
              1. 从engine获得的ca.pem文件(已经改名)
                1. cacert.pem
                2. cakey.pem
              • 共计四个所需文件
              notion image

              ③ 部署证书

              将生成的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
              notion image

              3. 查看node证书

              • 查看主机(node)证书的有效时间范围
              notion image
              Linux挂载硬盘Confluence 中文乱码问题处理
              Loading...