附录 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 中。

  1. 备份当前 apache.p12 文件:

    # cp -p /etc/pki/ovirt-engine/keys/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12.bck
  2. 将当前文件替换为新文件:

    # cp /tmp/apache.p12 /etc/pki/ovirt-engine/keys/apache.p12
  3. 将私钥和证书提取到所需位置。如果文件受密码保护,您必须添加 -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 证书

  1. 如果您使用自托管引擎,请将环境设置为全局维护模式。

    # hosted-engine --set-maintenance --mode=global

    更多信息请参阅 第 15.1 节 “维护自托管引擎”

  2. 将 CA 证书添加到主机范围内的信任存储中:

    # cp /tmp/3rd-party-ca-cert.pem /etc/pki/ca-trust/source/anchors
    # update-ca-trust
  3. 管理器已配置为使用 /etc/pki/ovirt-engine/apache-ca.pem,它符号链接到 /etc/pki/ovirt-engine/ca.pem。删除符号链接:

    # rm /etc/pki/ovirt-engine/apache-ca.pem
  4. 将您的 CA 证书保存为 /etc/pki/ovirt-engine/apache-ca.pem

    # cp /tmp/3rd-party-ca-cert.pem /etc/pki/ovirt-engine/apache-ca.pem
  5. 备份现有的私钥和证书:

    # 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
  6. 将私钥复制到所需位置:

    # cp /tmp/apache.key /etc/pki/ovirt-engine/keys/apache.key.nopass
  7. 将私钥所有者设置为 root,并将权限设置为 0640

    # chown root:ovirt  /etc/pki/ovirt-engine/keys/apache.key.nopass
    # chmod 640 /etc/pki/ovirt-engine/keys/apache.key.nopass
  8. 将证书复制到所需位置:

    # cp /tmp/apache.cer /etc/pki/ovirt-engine/certs/apache.cer
  9. 重启 Apache 服务器:

    # systemctl restart httpd.service
  10. 使用以下参数,创建一个新的信任存储配置文件 /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=""
  11. 复制 /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
  12. 重启 websocket-proxy 服务:

    # systemctl restart ovirt-websocket-proxy.service
  13. 如果您手动更改了 /etc/ovirt-provider-ovn/conf.d/10-setup-ovirt-provider-ovn.conf 文件,或使用较旧的安装中的配置文件,请确保管理器仍然配置为使用 /etc/pki/ovirt-engine/apache-ca.pem 作为证书源。
  14. 通过创建新文件 /etc/ovirt- engine-backup /engine-backup-config.d/update-system-wide-pki.sh 来启用 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
  15. 重启 ovirt-provider-ovn 服务:

    # systemctl restart ovirt-provider-ovn.service
  16. 重启 ovirt-engine 服务:

    # systemctl restart ovirt-engine.service
  17. 如果您使用自托管引擎,请关闭全局维护模式。

    # hosted-engine --set-maintenance --mode=none

您的用户现在可以连接到管理门户和虚拟机门户,而不会看到有关加密 HTTPS 流量的证书的真实警告。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.