8.2. 将身份管理从红帽企业 Linux 6 迁移到版本 7


这个步骤描述了如何将所有数据和配置从 Red Hat Enterprise Linux 6 Identity Management 迁移到 Red Hat Enterprise Linux 7 服务器。迁移步骤包括:
  • 将基于红帽企业 Linux 6 的证书颁发机构(CA)主服务器迁移到红帽企业 Linux 7。
  • 将所有服务转移到新的红帽企业 Linux 7 服务器.这些服务包括 CRL 和证书创建、DNS 管理或 Kerberos KDC 管理。
  • 停用原始 Red Hat Enterprise Linux 6 CA master。
在以下步骤中:
  • rhel7.example.com 是 Red Hat Enterprise Linux 7 系统,它将成为新的 CA master。
    重要
    RHEL 7.9 唯一支持的次版本。确定在您的系统上安装了 RHEL 7.9。
  • rhel6.example.com 是原始 Red Hat Enterprise Linux 6 CA master。
    注意
    要识别哪个 Red Hat Enterprise Linux 6 服务器是主 CA 服务器,请确定 certmonger 服务跟踪 renewal _ca_cert 命令。在 Red Hat Enterprise Linux 6 服务器上运行这个命令:
    [root@rhel6 ~]# getcert list -d /var/lib/pki-ca/alias -n "subsystemCert cert-pki-ca" | grep post-save
    post-save command: /usr/lib64/ipa/certmonger/renew_ca_cert "subsystemCert cert-pki-ca"
    执行 renewal _ca_cert 的 post-save 操作只针对 CA master 定义。

8.2.1. 将身份管理从 Red Hat Enterprise Linux 6 迁移到 7 的先决条件

8.2.2. 更新 Red Hat Enterprise Linux 6 上的身份管理架构

copy-schema-to-ca.py 模式更新脚本为 rhel7.example.com 副本安装准备 rhel6.example.com。由于身份管理版本 3.1 及更高版本之间的 schema 更改,因此需要更新该架构。
  1. copy-schema-to-ca.py 模式更新脚本从 rhel7.example.com 系统复制到 rhel6.example.com 系统。例如:
    [root@rhel7 ~]# scp /usr/share/ipa/copy-schema-to-ca.py root@rhel6:/root/
  2. rhel6.example.com 上运行更新的 copy-schema-to-ca.py 脚本。
    [root@rhel6 ~]# python copy-schema-to-ca.py
    ipa         : INFO     Installed /etc/dirsrv/slapd-PKI-IPA//schema/60kerberos.ldif
    [... output truncated ...]
    ipa         : INFO     Schema updated successfully
  3. 在连接到 Red Hat Enterprise Linux 7 副本前,在每个运行证书颁发机构的 Red Hat Enterprise Linux 6 IdM 副本上重复这些步骤。

8.2.3. 安装 Red Hat Enterprise Linux 7 Replica

  1. rhel6.example.com 系统上,创建用于安装 rhel7.example.com 副本的副本文件。例如,要为 rhel7.example.com 创建一个副本文件,其 IP 地址为 192.0.2.1
    [root@rhel6 ~]# ipa-replica-prepare rhel7.example.com --ip-address 192.0.2.1
    
    Directory Manager (existing master) password:
    Preparing replica for rhel7.example.com from rhel6.example.com
    [... output truncated ...]
    The ipa-replica-prepare command was successful
  2. 将副本信息文件从 rhel6.example.com 复制到 rhel7.example.com
    [root@rhel6 ~]# scp /var/lib/ipa/replica-info-replica.example.com.gpg root@rhel7:/var/lib/ipa/
  3. 如果您在 Red Hat Enterprise Linux 7.6 或更高版本中安装带有集成 CA 的新副本,请将以下条目附加到 /etc/httpd/conf.d/nss.conf 文件中的 NSSCipherSuite 参数的末尾:
    +ecdhe_rsa_aes_128_sha,+ecdhe_rsa_aes_256_sha
    在 Red Hat Enterprise Linux 7.6 或更高版本中,IdM CA 中不再启用某些密码。如果没有将此条目添加到配置中,在 Red Hat Enterprise Linux 7.6 上设置带有集成 CA 的 IdM 服务器作为在 Red Hat Enterprise Linux 6 上运行的 master 的副本会失败,并显示 CRITICAL Failed 来配置 CA 实例 错误。
  4. 使用副本文件安装 rhel7.example.com 副本。例如,以下命令使用以下选项:
    • --setup-ca 用来设置证书系统组件
    • --setup-dns--forwarder 来配置集成的 DNS 服务器并设置转发器
    • --ip-address 指定 rhel7.example.com 系统的 IP 地址
    [root@rhel7 ~]# ipa-replica-install /var/lib/ipa/replica-info-rhel7.example.com.gpg --setup-ca --ip-address 192.0.2.1 --setup-dns --forwarder 192.0.2.20
    Directory Manager (existing master) password:
    
    Checking DNS forwarders, please wait ...
    Run connection check to master
    [... output truncated ...]
    Client configuration complete.
    另请参阅:
  5. 验证身份管理服务是否在 rhel7.example.com 上运行。
    [root@rhel7 ~]# ipactl status
    Directory Service: RUNNING
    [... output truncated ...]
    ipa: INFO: The ipactl command was successful

8.2.4. 将 CA 服务转换到 Red Hat Enterprise Linux 7 服务器

开始前:
  • 验证 rhel6.example.comrhel7.example.com CA 是否都配置为主服务器。
    [root@rhel7 ~]$ kinit admin
    [root@rhel7 ~]$ ipa-csreplica-manage list
    rhel6.example.com: master
    rhel7.example.com: master
    显示复制协议的详情:
    [root@rhel7 ~]# ipa-csreplica-manage list --verbose rhel7.example.com
    rhel7.example.com
    last init status: None
    last init ended: 1970-01-01 00:00:00+00:00
    last update status: Error (0) Replica acquired successfully: Incremental update succeeded
    last update ended: 2017-02-13 13:55:13+00:00
rhel6.example.com 原始 master CA 上,停止 CA 子系统证书续订:
  1. 禁用跟踪原始 CA 证书。
    [root@rhel6 ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "auditSigningCert cert-pki-ca"
    Request "20201127184547" removed.
    [root@rhel6 ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "ocspSigningCert cert-pki-ca"
    Request "20201127184548" removed.
    [root@rhel6 ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "subsystemCert cert-pki-ca"
    Request "20201127184549" removed.
    [root@rhel6 ~]# getcert stop-tracking -d /etc/httpd/alias -n ipaCert
    Request "20201127184550" removed.
  2. 重新配置 rhel6.example.com,以从新的 master CA 检索更新的证书。
    1. 将续订帮助程序脚本复制到 certmonger 服务目录中,并设置适当的权限。
      [root@rhel6 ~]# cp /usr/share/ipa/ca_renewal /var/lib/certmonger/cas/
      [root@rhel6 ~]# chmod 0600 /var/lib/certmonger/cas/ca_renewal
    2. 更新 SELinux 配置。
      [root@rhel6 ~]# restorecon /var/lib/certmonger/cas/ca_renewal
    3. 重新启动 certmonger
      [root@rhel6 ~]# service certmonger restart
    4. 检查 CA 是否已列出以检索证书。
      [root@rhel6 ~]# getcert list-cas
      ...
      CA 'dogtag-ipa-retrieve-agent-submit':
              is-default: no
              ca-type: EXTERNAL
      	helper-location: /usr/libexec/certmonger/dogtag-ipa-retrieve-agent-submit
    5. 获取 CA 证书数据库 PIN。
      [root@rhel6 ~]# grep internal= /var/lib/pki-ca/conf/password.conf
    6. 配置 certmonger 以跟踪外部续订的证书。这需要数据库 PIN。
      [root@rhel6 ~]# getcert start-tracking \
          -c dogtag-ipa-retrieve-agent-submit \
          -d /var/lib/pki-ca/alias \
          -n "auditSigningCert cert-pki-ca" \
          -B /usr/lib64/ipa/certmonger/stop_pkicad \
          -C '/usr/lib64/ipa/certmonger/restart_pkicad \
          "auditSigningCert cert-pki-ca"' \
          -T "auditSigningCert cert-pki-ca" \
          -P database_pin
      New tracking request "20201127184743" added.
      [root@rhel6 ~]# getcert start-tracking \
          -c dogtag-ipa-retrieve-agent-submit \
          -d /var/lib/pki-ca/alias \
          -n "ocspSigningCert cert-pki-ca" \
          -B /usr/lib64/ipa/certmonger/stop_pkicad \
          -C '/usr/lib64/ipa/certmonger/restart_pkicad \
          "ocspSigningCert cert-pki-ca"' \
          -T "ocspSigningCert cert-pki-ca" \
          -P database_pin
      New tracking request "20201127184744" added.
      [root@rhel6 ~]# getcert start-tracking \
          -c dogtag-ipa-retrieve-agent-submit \
          -d /var/lib/pki-ca/alias \
          -n "subsystemCert cert-pki-ca" \
          -B /usr/lib64/ipa/certmonger/stop_pkicad \
          -C '/usr/lib64/ipa/certmonger/restart_pkicad \
          "subsystemCert cert-pki-ca"' \
          -T "subsystemCert cert-pki-ca" \
          -P database_pin
      New tracking request "20201127184745" added.
      [root@rhel6 ~]# getcert start-tracking \
          -c dogtag-ipa-retrieve-agent-submit \
          -d /etc/httpd/alias \
          -n ipaCert \
          -C /usr/lib64/ipa/certmonger/restart_httpd \
          -T ipaCert \
          -p /etc/httpd/alias/pwdfile.txt
      New tracking request "20201127184746" added.
将 CRL 生成从原始 rhel6.example.com CA master 移到 rhel7.example.com
  1. rhel6.example.com 上,停止 CRL 生成:
    1. 停止 CA 服务。
      [root@rhel6 ~]# service pki-cad stop
    2. rhel6.example.com 中禁用 CRL 生成。打开 /var/lib/pki-ca/conf/CS.cfg 文件,并将 ca.crl.MasterCRL.enableCRLCacheca.crl.MasterCRLUpdates 参数的值设置为 false
      ca.crl.MasterCRL.enableCRLCache=false
      ca.crl.MasterCRL.enableCRLUpdates=false
    3. 启动 CA 服务。
      [root@rhel6 ~]# service pki-cad start
  2. rhel6.example.com 上,将 Apache 配置为重定向 CRL 请求:
    1. 打开 /etc/httpd/conf.d/ipa-pki-proxy.conf 文件,取消注释 RewriteRule 条目:
      RewriteRule ^/ipa/crl/MasterCRL.bin https://rhel6.example.com/ca/ee/ca/getCRL?op=getCRL&crlIssuingPoint=MasterCRL [L,R=301,NC]
      注意
      不要替换 URL 中的服务器主机名。URL 必须引用本地主机名。
    2. 重新启动 Apache.
      [root@rhel6 ~]# service httpd restart
    IdM 现在从本地 CA 获取证书撤销列表(CRL),而不是从本地文件获取。
  3. rhel7.example.com 上,将 rhel7.example.com 配置为新的 CA master:
    1. 配置 rhel7.example.com 以处理 CA 子系统证书续订,如 第 D.4.1 节 “更改 Which 服务器处理证书续订” 所述。
    2. rhel7.example.com 配置为常规证书撤销列表(CRL),如 第 6.5.2.2 节 “更改 Which Server Generates CRL” 所述。

相关信息

8.2.5. 停止 Red Hat Enterprise Linux 6 服务器

停止 rhel6.example.com 上的所有服务,将域发现强制到新的 rhel7.example.com 服务器。
[root@rhel6 ~]# ipactl stop
Stopping CA Service
Stopping pki-ca:                                           [  OK  ]
Stopping HTTP Service
Stopping httpd:                                            [  OK  ]
Stopping MEMCACHE Service
Stopping ipa_memcached:                                    [  OK  ]
Stopping DNS Service
Stopping named: .                                          [  OK  ]
Stopping KPASSWD Service
Stopping Kerberos 5 Admin Server:                          [  OK  ]
Stopping KDC Service
Stopping Kerberos 5 KDC:                                   [  OK  ]
Stopping Directory Service
Shutting down dirsrv:
    EXAMPLE-COM...                                         [  OK  ]
    PKI-IPA...                                             [  OK  ]
之后,使用 ipa 实用程序将通过远程过程调用(RPC)联系新的服务器。

8.2.6. 在迁移主 CA 服务器后,下一步

对于拓扑中的每个 Red Hat Enterprise Linux 6 服务器:
  1. rhel7.example.com 创建副本文件。
    注意
    从 Red Hat Enterprise Linux 6 服务器安装 Red Hat Enterprise Linux 7 副本后,身份管理域的域级别会自动设置为 0。
    Red Hat Enterprise Linux 7.3 引进了一种更简单的方式来安装和管理副本。要使用这些功能,您的拓扑必须在域级别 1 上。请参阅 第 7 章 显示和提升域级别
  2. 使用副本文件在另一个 Red Hat Enterprise Linux 7 系统上安装新副本。
要取消使用 Red Hat Enterprise Linux 6 服务器:
  • 通过在 Red Hat Enterprise Linux 7 服务器中执行移除命令,从拓扑中删除服务器。
重要
客户端配置不会自动更新。如果您取消授权 IDM 服务器并使用不同的名称配置了新服务器,您应该检查整个客户端配置。特别是,您必须手动更新以下文件:
  • /etc/openldap/ldap.conf
  • /etc/ipa/default.conf
  • /etc/sssd/sssd.conf
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.