该解决方案适用于数据中心中多于一台主机的情况。
1.查看当前证书的有效时间范围。
a.查看管理台证书的有效时间范围
[root@100engine41 pki]# openssl x509 -in /etc/pki/ovirt-engine/certs/engine.cer -noout -dates notBefore=Feb 14 04:41:03 2021 GMT notAfter=Jan 8 04:41:03 2022 GMT
b.查看主机证书的有效时间范围
[root@100node40 ~]# openssl x509 -in /etc/pki/vdsm/certs/vdsmcert.pem -noout -dates notBefore=Feb 14 04:41:03 2021 GMT notAfter=Jan 8 04:41:03 2022 GMT
2.修改主机和管理台的系统时间到当前证书有效时间范围内,让管理台和主机的状态恢复正常。
# 管理台 [root@100engine41 pki]# date -s "2022-1-7" # 主机 [root@100node40 ~]# date -s "2022-1-7"
3.重新生成管理台和主机的证书(例如11年)
a.修改证书的有效时间
# /usr/share/ovirt-engine/bin/pki-enroll-request.sh NAME="" SUBJECT="" TIMEOUT="20" DAYS="3980" # 默认为398天,修改为3980天 OVIRT_KU=""
b.重新生成根证书(默认根证书的有效期为10年,可以不执行该操作)
[root@100engine41 ~]# openssl x509 -signkey /etc/pki/ovirt-engine/private/ca.pem -in /etc/pki/ovirt-engine/ca.pem -out /etc/pki/ovirt-engine/ca.pem.new -days 3650 -sha256 Getting Private key [root@100engine41 ~]# ll /etc/pki/ovirt-engine/ca.pem.new -rw-r--r--. 1 root root 1314 Feb 16 14:21 /etc/pki/ovirt-engine/ca.pem.new # 新生成的根证书替换旧的根证书 [root@100engine41 ~]# mv /etc/pki/ovirt-engine/ca.pem.new /etc/pki/ovirt-engine/ca.pem
c.设置HA的维护模式为global模式
[root@100node40 ~]# hosted-engine --set-maintenance --mode=global
d.执行以下脚本命令生成管理台证书
names="engine apache websocket-proxy jboss" . /etc/ovirt-engine/engine.conf.d/10-setup-protocols.conf for name in $names; do subject="$( openssl \ x509 \ -in /etc/pki/ovirt-engine/certs/"${name}".cer \ -noout \ -subject \ | sed \ -e 's;subject=;/;' -e 's; ;;g' -e 's;,;/;g' \ )" /usr/share/ovirt-engine/bin/pki-enroll-pkcs12.sh \ --name="${name}" \ --password=mypass \ --subject="${subject}" \ --san=DNS:"${ENGINE_FQDN}" \ --keep-key done # 重启相关服务 systemctl restart httpd systemctl restart ovirt-engine systemctl restart ovirt-websocket-proxy systemctl restart ovirt-imageio
e.执行完上面的脚本会重新更新以下证书
[root@100engine41 ~]# openssl x509 -in /etc/pki/ovirt-engine/certs/engine.cer -noout -dates notBefore=Feb 14 04:41:03 2022 GMT notAfter=Jan 8 04:41:03 2033 GMT [root@100engine41 ~]# openssl x509 -in /etc/pki/ovirt-engine/certs/apache.cer -noout -dates notBefore=Feb 14 04:41:04 2022 GMT notAfter=Jan 8 04:41:04 2033 GMT [root@100engine41 ~]# openssl x509 -in /etc/pki/ovirt-engine/certs/websocket-proxy.cer -noout -dates notBefore=Feb 14 04:41:04 2022 GMT notAfter=Jan 8 04:41:04 2033 GMT [root@100engine41 ~]# openssl x509 -in /etc/pki/ovirt-engine/certs/jboss.cer -noout -dates notBefore=Feb 14 04:41:04 2022 GMT notAfter=Jan 8 04:41:04 2033 GMT
f.关闭HA的全局维护模式
[root@100node40 ~]# hosted-engine --set-maintenance --mode=none
g.修改管理台的 engine 数据库,改变主机的证书的有效时间
[root@100engine41 ~]# su postgres bash-4.4$ psql could not change directory to "/root": Permission denied psql (12.7) Type "help" for help. postgres=# \c engine You are now connected to database "engine" as user "postgres". engine=# select * from vdc_options where option_name='VdsCertificateValidityInDays'; option_id | option_name | option_value | version | default_value -----------+------------------------------+--------------+---------+--------------- 354 | VdsCertificateValidityInDays | 398 | general | 398 (1 row) engine=# update vdc_options set option_value=3980 where option_name='VdsCertificateValidityInDays'; UPDATE 1 engine=# update vdc_options set default_value=3980 where option_name='VdsCertificateValidityInDays'; UPDATE 1 engine=# select * from vdc_options where option_name='VdsCertificateValidityInDays'; option_id | option_name | option_value | version | default_value -----------+------------------------------+--------------+---------+--------------- 354 | VdsCertificateValidityInDays | 3980 | general | 3980 (1 row) engine=# exit bash-4.4$ exit exit #重启管理台服务 [root@100engine41 ~]# systemctl restart ovirt-engine
4.所有主机执行“注册证书”操作
操作步骤:
- 首先迁移主机上的虚拟机到其它主机上。
- 然后主机执行“维护”操作。
- 然后点击“注册证书”按钮。
- 注册证书操作完成后,主机会变为维护状态,点击“激活”按钮将主机激活。
- 在主机终端中执行以下命令:
cd /etc/pki/vdsm cp -r libvirt-spice libvirt-vnc cd /etc/pki/vdsm/libvirt-vnc chown vdsm:kvm server-key.pem
5.将主机和管理台的系统时间调整到当前时间
# 加入当前时间为“2022-2-16 14:21:16” # 管理台 [root@100engine41 pki]# date -s “2022-2-16 14:21:16” # 主机 [root@100node40 ~]# date -s “2022-2-16 14:21:16”
??新版本中的重要问题,使用一年后就会面临这个问题。
a.修改证书的有效时间
# /usr/share/ovirt-engine/bin/pki-enroll-request.sh
NAME=””
SUBJECT=””
TIMEOUT=”20″
DAYS=”3980″ # 默认为398天,修改为3980天
OVIRT_KU=””
这段每看懂如何操作,能否详细说明一下,谢谢
这里作者没有写清楚,应该是需要修改“pki-enroll-pkcs12.sh”这个文件中的几个字段中天数相关字段。在后面d步骤中的脚本会调用这个脚本,自动生产新的ca证书文件。
更正一下,是没看懂
楼主有all in one环境证书过期解决办法吗?
4.4.10 d 步脚本怎么执行啊 弄成.sh 执行吗,试一下 测试不了,报错
[root@engine254 ~]# sh vt.sh
vt.sh: line 2: .: command not found
vt.sh: line 3: syntax error near unexpected token `do’
vt.sh: line 3: ` for name in $names; do’
https://www.ovirt.org/documentation/administration_guide/index.html#chap-Renewing_certificates_RHV_backup_restore
看看官网的做法