附录 E. Red Hat Virtualization 和加密通信
E.1. 替换 Red Hat Virtualization Manager CA 证书
您可以配置机构的第三方 CA 证书,以通过 HTTPS 对连接到 Red Hat Virtualization Manager 的用户进行身份验证。
第三方 CA 证书不用于 Manager 和主机 或磁盘传输 URL 进行验证。这些 HTTPS 连接使用 Manager 生成的自签名证书。
当您切换到自定义 HTTPS 证书时,必须使用自己的 CA 证书分发来在客户端上提供该证书。
如果您要与 Red Hat Satellite 集成,则需要手动将正确的证书导入到 Satellite 中。
如果您在 P12 文件中从 CA 收到私钥和证书,请使用以下步骤提取它们。如需其他文件格式,请联系您的 CA。提取私钥和证书后,继续 替换 Red Hat Virtualization Manager Apache CA 证书。
E.1.1. 从 P12 捆绑包中提取证书和私钥
内部 CA 将内部生成的密钥和证书存储在一个 P12 文件中(/etc/pki/ovirt-engine/keys/apache.p12
)。将新文件存储在同一位置。以下步骤假定新的 P12 文件位于 /tmp/apache.p12
中。
不要更改 /etc/pki
目录或任何子目录的权限和所有权。/etc/pki
和 /etc/pki/ovirt-engine
目录的权限必须保留为默认值 755
。
流程
备份当前
apache.p12
文件:# cp -p /etc/pki/ovirt-engine/keys/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12.bck
将当前文件替换为新文件:
# cp /tmp/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12
将私钥和证书提取到所需位置:
# openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 -nocerts -nodes > /tmp/apache.key # openssl pkcs12 -in /etc/pki/ovirt-engine/keys/apache.p12 -nokeys > /tmp/apache.cer
如果文件受密码保护,请在命令中添加
-passin pass:password
,用 所需的密码 替换 password。
对于新的 Red Hat Virtualization 安装,您必须完成此流程中的所有步骤。
E.1.2. 替换 Red Hat Virtualization Manager Apache CA 证书
您可以配置您组织的第三方 CA 证书,以通过 HTTPS 对连接到管理门户和虚拟机门户的验证身份。
不要更改 /etc/pki
目录或任何子目录的权限和所有权。/etc/pki
和 /etc/pki/ovirt-engine
目录的权限必须保留为默认值 755
。
前提条件
-
第三方 CA (证书授权)证书。它作为
PEM
文件提供。证书链必须完成为 root 证书。链的顺序非常重要,且必须是从最后的中间证书到 root 证书。此流程假定/tmp/3rd-party-ca-cert.pem
中提供第三方 CA 证书。 -
要用于 Apache httpd 的私钥。它不能有密码。此流程假定它位于
/tmp/apache.key
中。 -
CA 发布的证书。此流程假定它位于
/tmp/apache.cer
中。
流程
如果您使用自托管引擎,请将环境设置为全局维护模式。
# hosted-engine --set-maintenance --mode=global
如需更多信息,请参阅 维护自托管引擎。
将 CA 证书添加到主机范围内的信任存储中:
# cp /tmp/3rd-party-ca-cert.pem /etc/pki/ca-trust/source/anchors # update-ca-trust
管理器已配置为使用
/etc/pki/ovirt-engine/apache-ca.pem
,它符号链接到/etc/pki/ovirt-engine/ca.pem
。删除符号链接:# rm /etc/pki/ovirt-engine/apache-ca.pem
将您的 CA 证书保存为
/etc/pki/ovirt-engine/apache-ca.pem
:# cp /tmp/3rd-party-ca-cert.pem /etc/pki/ovirt-engine/apache-ca.pem
备份现有的私钥和证书:
# cp /etc/pki/ovirt-engine/keys/apache.key.nopass /etc/pki/ovirt-engine/keys/apache.key.nopass.bck # cp /etc/pki/ovirt-engine/certs/apache.cer /etc/pki/ovirt-engine/certs/apache.cer.bck
将私钥复制到所需位置:
# cp /tmp/apache.key /etc/pki/ovirt-engine/keys/apache.key.nopass
将私钥所有者设置为 root,并将权限设置为
0640
:# chown root:ovirt /etc/pki/ovirt-engine/keys/apache.key.nopass # chmod 640 /etc/pki/ovirt-engine/keys/apache.key.nopass
将证书复制到所需位置:
# cp /tmp/apache.cer /etc/pki/ovirt-engine/certs/apache.cer
将证书所有者设置为 root,并将权限设置为
0644
:# chown root:ovirt /etc/pki/ovirt-engine/certs/apache.cer # chmod 644 /etc/pki/ovirt-engine/certs/apache.cer
重启 Apache 服务器:
# systemctl restart httpd.service
使用以下参数,创建一个新的信任存储配置文件
/etc/ovirt-engine/engine.conf.d/99-custom-truststore.conf
:ENGINE_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts" ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD=""
复制
/etc/ovirt-engine/ovirt-websocket-proxy.conf.d/10-setup.conf
文件,并使用大于 10 的索引号进行重命名(如99-setup.conf
)。在新文件中添加以下参数:SSL_CERTIFICATE=/etc/pki/ovirt-engine/certs/apache.cer SSL_KEY=/etc/pki/ovirt-engine/keys/apache.key.nopass
重启
websocket-proxy
服务:# systemctl restart ovirt-websocket-proxy.service
-
如果您手动更改了
/etc/ovirt-provider-ovn/conf.d/10-setup-ovirt-provider-ovn.conf
文件,或使用较旧的安装中的配置文件,请确保管理器仍然配置为使用/etc/pki/ovirt-engine/apache-ca.pem
作为证书源。 创建
/etc/ovirt-engine-backup/engine-backup-config.d
目录:# mkdir -p /etc/ovirt-engine-backup/engine-backup-config.d
使用以下内容创建
/etc/ovirt-engine-backup/engine-backup-config.d/update-system-wide-pki.sh
文件:这将启用ovirt-engine-backup
以在恢复时自动更新系统。BACKUP_PATHS="${BACKUP_PATHS} /etc/ovirt-engine-backup" cp -f /etc/pki/ovirt-engine/apache-ca.pem \ /etc/pki/ca-trust/source/anchors/3rd-party-ca-cert.pem update-ca-trust
重启
ovirt-provider-ovn
服务:# systemctl restart ovirt-provider-ovn.service
重启
ovirt-imageio
服务:# systemctl restart ovirt-imageio.service
重启
ovirt-engine
服务:# systemctl restart ovirt-engine.service
如果您使用自托管引擎,请关闭全局维护模式:
# hosted-engine --set-maintenance --mode=none
现在,您可以在不看到证书警告的情况下连接到管理门户和虚拟机门户。