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 的先决条件
- 将
rhel6.example.com
系统更新至最新的 Red Hat Enterprise Linux 6 版本。 - 在
rhel6.example.com
系统中,升级 ipa the 软件包:[root@rhel6 ~]# yum update ipa-*
此步骤还确保您应用了 RHBA-2015:0231-2 公告,该公告提供 bind-dyndb-ldap 软件包的2.3-6.el6_6
版本,并附带 Red Hat Enterprise Linux 6.6 Extended Update Support (EUS)。警告使用早期版本的 bind-dyndb-ldap 会导致 Red Hat Enterprise Linux 6.6 DNS 服务器和 Red Hat Enterprise Linux 7 DNS 服务器间的 DNS 转发区域服务的行为不一致。 - 在
rhel7.example.com
系统上,安装所需的软件包。请参阅 第 2.2 节 “安装 IdM 服务器所需的软件包”。
8.2.2. 更新 Red Hat Enterprise Linux 6 上的身份管理架构
copy-schema-to-ca.py
模式更新脚本为 rhel7.example.com
副本安装准备 rhel6.example.com
。由于身份管理版本 3.1 及更高版本之间的 schema 更改,因此需要更新该架构。
- 将
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/
- 在
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
- 在连接到 Red Hat Enterprise Linux 7 副本前,在每个运行证书颁发机构的 Red Hat Enterprise Linux 6 IdM 副本上重复这些步骤。
8.2.3. 安装 Red Hat Enterprise Linux 7 Replica
- 在
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
另请参阅 第 D.1 节 “副本信息文件” 和 第 D.2 节 “创建副本”。 - 将副本信息文件从
rhel6.example.com
复制到rhel7.example.com
。[root@rhel6 ~]# scp /var/lib/ipa/replica-info-replica.example.com.gpg root@rhel7:/var/lib/ipa/
- 如果您在 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 实例 错误。 - 使用副本文件安装
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.
另请参阅:- 第 D.2 节 “创建副本”描述了使用副本信息文件创建副本
- 验证身份管理服务是否在
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.com
和rhel7.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 子系统证书续订:
- 禁用跟踪原始 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.
- 重新配置
rhel6.example.com
,以从新的 master CA 检索更新的证书。- 将续订帮助程序脚本复制到
certmonger
服务目录中,并设置适当的权限。[root@rhel6 ~]# cp /usr/share/ipa/ca_renewal /var/lib/certmonger/cas/ [root@rhel6 ~]# chmod 0600 /var/lib/certmonger/cas/ca_renewal
- 更新 SELinux 配置。
[root@rhel6 ~]# restorecon /var/lib/certmonger/cas/ca_renewal
- 重新启动
certmonger
。[root@rhel6 ~]# service certmonger restart
- 检查 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
- 获取 CA 证书数据库 PIN。
[root@rhel6 ~]# grep internal= /var/lib/pki-ca/conf/password.conf
- 配置
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
。
- 在
rhel6.example.com
上,停止 CRL 生成:- 停止 CA 服务。
[root@rhel6 ~]# service pki-cad stop
- 在
rhel6.example.com
中禁用 CRL 生成。打开/var/lib/pki-ca/conf/CS.cfg
文件,并将ca.crl.MasterCRL.enableCRLCache
和ca.crl.MasterCRLUpdates
参数的值设置为false
。ca.crl.MasterCRL.enableCRLCache=
false
ca.crl.MasterCRL.enableCRLUpdates=false
- 启动 CA 服务。
[root@rhel6 ~]# service pki-cad start
- 在
rhel6.example.com
上,将 Apache 配置为重定向 CRL 请求:- 打开
/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 必须引用本地主机名。 - 重新启动 Apache.
[root@rhel6 ~]# service httpd restart
IdM 现在从本地 CA 获取证书撤销列表(CRL),而不是从本地文件获取。 - 在
rhel7.example.com
上,将rhel7.example.com
配置为新的 CA master:- 配置
rhel7.example.com
以处理 CA 子系统证书续订,如 第 D.4.1 节 “更改 Which 服务器处理证书续订” 所述。 - 将
rhel7.example.com
配置为常规证书撤销列表(CRL),如 第 6.5.2.2 节 “更改 Which Server Generates CRL” 所述。
相关信息
- 有关 CA 子系统证书续订和 CRL 的详细信息,请参阅 第 6.5.2 节 “将副本提升到主 CA 服务器”。
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 服务器:
- 从
rhel7.example.com
创建副本文件。注意从 Red Hat Enterprise Linux 6 服务器安装 Red Hat Enterprise Linux 7 副本后,身份管理域的域级别会自动设置为 0。Red Hat Enterprise Linux 7.3 引进了一种更简单的方式来安装和管理副本。要使用这些功能,您的拓扑必须在域级别 1 上。请参阅 第 7 章 显示和提升域级别。 - 使用副本文件在另一个 Red Hat Enterprise Linux 7 系统上安装新副本。
请参阅 第 4 章 安装和卸载身份管理副本。
要取消使用 Red Hat Enterprise Linux 6 服务器:
- 通过在 Red Hat Enterprise Linux 7 服务器中执行移除命令,从拓扑中删除服务器。
请参阅 第 2.4 节 “卸载 IdM 服务器”。
重要
客户端配置不会自动更新。如果您取消授权 IDM 服务器并使用不同的名称配置了新服务器,您应该检查整个客户端配置。特别是,您必须手动更新以下文件:
/etc/openldap/ldap.conf
/etc/ipa/default.conf
/etc/sssd/sssd.conf