附录 D. Red Hat Virtualization 和加密通信
D.1. 替换 Red Hat Virtualization Manager CA 证书
不要更改 /etc/pki
目录或任何子目录的权限和所有权。/etc/pki
和 /etc/pki/ovirt-engine
目录的权限必须保留为默认值 755
。
您可以配置您组织的第三方 CA 证书,以标识通过 HTTPS 连接的用户。
将第三方 CA 证书用于 HTTPS 连接不会影响在 Manager 和主机之间进行身份验证的证书。它们将继续使用由 Manager 生成的自签名证书。
先决条件
-
第三方 CA 证书。这是发布您要使用的证书的 CA (证书授权)的证书。它作为 PEM 文件提供。证书链必须完成为 root 证书。链的顺序非常重要,且必须是从最后的中间证书到 root 证书。此流程假定
/tmp/3rd-party-ca-cert.pem
中提供第三方 CA 证书。 -
要用于 Apache httpd 的私钥。它不能有密码。此流程假定它位于
/tmp/apache.key
中。 -
CA 发布的证书。此流程假定它位于
/tmp/apache.cer
中。
如果您在 P12 文件中从 CA 收到私钥和证书,请使用以下步骤提取它们。如需其他文件格式,请联系您的 CA。提取私钥和证书后,继续 替换 Red Hat Virtualization Manager Apache CA 证书。
从 P12 捆绑包中提取证书和私钥
内部 CA 将内部生成的密钥和证书存储在一个 P12 文件中(/etc/pki/ovirt-engine/keys/apache.p12
)。红帽建议将新文件保存在同一位置。以下步骤假定新的 P12 文件位于 /tmp/apache.p12
中。
备份当前
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
将私钥和证书提取到所需位置。如果文件受密码保护,您必须添加
-passin pass:_password_
,用所需的密码替换 password。# 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
对于新的 Red Hat Virtualization 安装,您必须完成此流程中的所有步骤。如果您从已配置有商业签名的证书的 Red Hat Enterprise Virtualization 3.6 环境升级,则只需要步骤 1、8 和 9。
替换 Red Hat Virtualization Manager Apache CA 证书
如果您使用自托管引擎,请将环境设置为全局维护模式。
# hosted-engine --set-maintenance --mode=global
更多信息请参阅 第 15.1 节 “维护自托管引擎”。
将 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
重启 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/update-system-wide-pki.sh 来启用 engine-backupBACKUP_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-engine
服务:# systemctl restart ovirt-engine.service
如果您使用自托管引擎,请关闭全局维护模式。
# hosted-engine --set-maintenance --mode=none
您的用户现在可以连接到管理门户和虚拟机门户,而不会看到有关加密 HTTPS 流量的证书的真实警告。