第 2 章 将 TLS-e 迁移到 RHOSO 部署


如果您在 Red Hat OpenStack Platform (RHOSP) 17.1 部署中启用了 TLS (TLS-e),则必须将 TLS-e 迁移到 OpenShift (RHOSO)部署上的 Red Hat OpenStack Services。

RHOSO 部署使用 cert-manager operator 来发布、跟踪和更新证书。在以下步骤中,您将从您用来在 RHOSP 环境中提供证书的 FreeIPA 实例中提取 CA 签名证书,然后在 RHOSO 环境中将它们导入到 cert-manager 中。因此,您可以最小化 Compute 节点上的中断,因为您不需要安装新的信任链。

然后,您将弃用之前的 FreeIPA 节点,不再使用它来发布证书。如果您使用 IPA 服务器为非 RHOSP 系统发布证书,则可能无法实现。

注意
  • 以下流程在 FreeIPA 4.10.1 服务器上被重现。文件和目录的位置可能会根据版本而改变。
  • 如果签名密钥存储在硬件安全模块(HSM)中,而不是 NSS 共享数据库(NSSDB)中,并且密钥可以被检索,则可能需要特殊的 HSM 工具。

先决条件

  • 您的 RHOSP 部署使用 TLS-e。
  • 确保新部署中的后端服务尚未启动。
  • 定义以下 shell 变量:值是示例,引用单节点单机 director 部署。将这些示例值替换为适合您的环境的值:

    IPA_SSH="ssh -i <path_to_ssh_key> <admin user>@<freeipa-server-ip-address> sudo"
    Copy to Clipboard Toggle word wrap

流程

  1. 要找到 CA 证书和密钥,请列出 NSSDB 中的所有证书:

    $IPA_SSH certutil -L -d /etc/pki/pki-tomcat/alias
    Copy to Clipboard Toggle word wrap
    • -L 选项列出所有证书。
    • -d 选项指定证书的存储位置。

      该命令生成类似以下示例的输出:

      Certificate Nickname                                         Trust Attributes
                                                                   SSL,S/MIME,JAR/XPI
      
      caSigningCert cert-pki-ca                                    CTu,Cu,Cu
      ocspSigningCert cert-pki-ca                                  u,u,u
      Server-Cert cert-pki-ca                                      u,u,u
      subsystemCert cert-pki-ca                                    u,u,u
      auditSigningCert cert-pki-ca                                 u,u,Pu
      Copy to Clipboard Toggle word wrap
  2. /etc/pki/pki-tomcat/alias 目录中导出证书和密钥。以下示例使用 caSigningCert cert-pki-ca 证书:

    $IPA_SSH pk12util -o /tmp/freeipa.p12 -n 'caSigningCert\ cert-pki-ca' -d /etc/pki/pki-tomcat/alias -k /etc/pki/pki-tomcat/alias/pwdfile.txt -w /etc/pki/pki-tomcat/alias/pwdfile.txt
    Copy to Clipboard Toggle word wrap
    注意

    命令生成包含证书和密钥的 P12 文件。/etc/pki/pki-tomcat/alias/pwdfile.txt 文件包含保护密钥的密码。您可以使用密码提取密钥并生成新文件 /tmp/freeipa.p12。您还可以选择其他密码。如果为新文件选择了其他密码,请替换 -w 选项的参数,或者使用 -W 选项,后跟密码,以明文形式替换。

    使用该文件,您还可以使用 openssl pkcs12 命令获取证书和密钥。

  3. 创建包含 root CA 的 secret:

    $ oc create secret generic rootca-internal
    Copy to Clipboard Toggle word wrap
  4. 从 FreeIPA 导入证书和密钥:

    $ oc patch secret rootca-internal -p="{\"data\":{\"ca.crt\": \"`$IPA_SSH openssl pkcs12 -in /tmp/freeipa.p12 -passin file:/etc/pki/pki-tomcat/alias/pwdfile.txt -nokeys | openssl x509 | base64 -w 0`\"}}"
    
    $ oc patch secret rootca-internal -p="{\"data\":{\"tls.crt\": \"`$IPA_SSH openssl pkcs12 -in /tmp/freeipa.p12 -passin file:/etc/pki/pki-tomcat/alias/pwdfile.txt -nokeys | openssl x509 | base64 -w 0`\"}}"
    
    $ oc patch secret rootca-internal -p="{\"data\":{\"tls.key\": \"`$IPA_SSH openssl pkcs12 -in /tmp/freeipa.p12 -passin file:/etc/pki/pki-tomcat/alias/pwdfile.txt -nocerts -noenc | openssl rsa | base64 -w 0`\"}}"
    Copy to Clipboard Toggle word wrap
  5. 创建 cert-manager 签发者并引用 secret:

    $ oc apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: rootca-internal
      labels:
        osp-rootca-issuer-public: ""
        osp-rootca-issuer-internal: ""
        osp-rootca-issuer-libvirt: ""
        osp-rootca-issuer-ovn: ""
    spec:
      ca:
        secretName: rootca-internal
    EOF
    Copy to Clipboard Toggle word wrap
  6. 删除之前创建的 p12 文件:

    $IPA_SSH rm /tmp/freeipa.p12
    Copy to Clipboard Toggle word wrap

验证

  • 验证是否已创建所需资源:

    $ oc get issuers
    Copy to Clipboard Toggle word wrap
    $ oc get secret rootca-internal -o yaml
    Copy to Clipboard Toggle word wrap
注意

采用完成后,cert-manager operator 会发布新证书,并使用新证书更新 secret。因此,control plane 上的 pod 会自动重启,以获取新证书。在数据平面上,您必须手动启动新部署并重启某些进程以使用新证书。旧证书会保持活跃状态,直到 control plane 和 data plane 都获取新证书。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat