27.4. 使用方法
此流程重新打包存储在一个证书系统 7.1 KRA 中的密钥,并将其存储在证书系统 8.1 KRA 中。这不是唯一的用例;工具可以在与源和目标相同的实例中运行,以重新打包现有密钥,或者只是用于将多个 KRA 实例的密钥复制到单个实例中,而无需对所有重新打包密钥。
- 准备新的 KRA 实例和机器。
- 安装和配置新的 Red Hat Certificate System 8.1 KRA 实例。重要将存储密钥大小和类型设置为 2048 位和 RSA。
- 停止新的 KRA。
[root@newkra ~]# service pki-kra stop
- 创建数据目录来存储来自旧 KRA 的导出的密钥数据。
[root@newkra ~]# mkdir -p /export/pki
- 将新 KRA 的公共存储证书导出到新数据目录中的平面文件中:
[root@newkra ~]# certutil -L -d /var/lib/pki-kra/alias/ -n "storageCert cert-pki-kra" -a > /export/pki/newKRA.cert
- 如果位于同一计算机上,停止新 KRA 的目录服务器实例。
>[root@newkra ~]# service dirsrv stop
- 导出新 KRA 的配置信息。
[root@newkra ~]# /usr/lib[64]/disrv/slapd-instanceName/db2ldif -n newkra.example.com-pki-kra -a /export/pki/newkra.ldif
重要确保 LDIF 文件在末尾包含一个空白行。
- 从旧 KRA 实例导出并准备密钥数据。
- 创建用于存储导出的密钥数据的数据目录。
[root@oldkra ~]# mkdir -p /export/pki
- 使用 [root@oldkra\":\" db2ldif 等工具导出来自原始 KRA 实例的信息。这是作为迁移 指南中的 KRA 章节的 7.1 到 8.1 迁移步骤的一部分。
- 将导出的数据的 LDIF 复制到数据目录中,并更新数据文件以更改归档 CA。
[root@oldkra ~]# cp /path/to/rhcs80-pki-kra.ldif /export/pki [root@oldkra ~]# sed -i -e "s/^archivedBy: kra_trusted_agent/archivedBy: CA/g" alpha.ldif
- 停止机器上的所有证书系统服务器。
- 将 NSS 数据库复制到数据目录中。例如,对于 7.1 KRA:
[root@oldkra ~]# cp -p /opt/redhat-cs/alias/cert-instance-kra-cert8.db /export/pki/cert8.db [root@oldkra ~]# cp -p /opt/redhat-cs/alias/cert-instance-kra-key3.db /export/pki/key3.db [root@oldkra ~]# cp -p /opt/redhat-cs/alias/secmod.db /export/pki/secmod.db
- 将 KRATool 复制到具有旧 KRA 实例的计算机上,并拉取所有依赖项。对于 7.x 系统,包括
nsutil.jar
和cmsutil.jar
文件(这些文件已在 8.0 系统中可用)。例如:[root@oldkra ~]# mkdir -p /usr/share/pki/java-tools [root@oldkra ~]# mkdir -p /usr/share/java/pki [root@oldkra ~]# cd /usr/share/java/pki [root@oldkra ~]# sftp root@newkra.example.com sftp> cd /usr/share/java/pki sftp> get nsutil.jar sftp> get cmsutil.jar sftp> get cstools.jar sftp> lcd /usr/share/pki/java-tools sftp> cd /usr/share/pki/java-tools sftp> get KRATool.cfg sftp> lcd /usr/bin sftp> cd /usr/bin sftp> get KRATool sftp> quit
重要机器必须安装有 Java 1.6.0。 - 对于 7.1 KRA。从旧的
ldapjdk.jar
文件创建一个符号链接到新的 8.x 位置。[root@oldkra ~]# ln -s /opt/redhat-cs/bin/cert/jars/ldapjdk.jar /usr/share/java/ldapjdk.jar
- 打开数据目录。
[root@oldkra ~]#cd /export/pki
- 使用来自新 KRA 计算机的公钥密钥的文件复制到旧的 KRA 计算机。例如:
[root@oldkra ~]# sftp root@newkra.example.com sftp> cd /export/pki sftp> get newKRA.cert sftp> quit
- 如有必要,编辑默认
KRATool.cfg
文件,以用于该工具。默认 文件也可以在不更改的情况下使用。 - 运行 KRATool; 所有这些参数都应位于一行中。
[root@oldkra ~]# KRATool -kratool_config_file "/usr/share/pki/java-tools/KRATool.cfg" -source_ldif_file /export/pki/rhcs80-pki-kra.ldif -target_ldif_file /export/pki/old2newKRA.ldif -log_file /export/pki/kratool.log -source_pki_security_database_path /export/pki -source_storage_token_name 'Internal Key Storage Token' -source_storage_certificate_nickname 'storageCert cert-pki-kra' -target_storage_certificate_file /export/pki/newKRA.cert -append_id_offset 100000000000 -source_kra_naming_context "oldkra.example.com-pki-kra" -target_kra_naming_context "newkra.example.com-pki-kra" -process_requests_and_key_records_only
命令将提示用户输入原始数据库中存储的令牌的密码。完成后,命令会创建-target_ldif_file
,old2newKRA.ldif
中指定的文件。 - 将 LDIF 文件复制到新的 KRA 机器。例如:
[root@oldkra ~]# scp /export/pki/old2newKRA.ldif root@newkra.example.com:/export/pki
重要确保 LDIF 文件在末尾包含一个空白行。
- 如果合并了多个 KRA 实例,则其数据可以合并到单个导入操作中。为每个将要合并的 KRA 执行以下步骤 2。为
-target_ldif_file
指定唯一值来创建单独的 LDIF 文件,并指定唯一的-append_id_offset
值,以便在 LDIF 文件串联时没有冲突。 - 在新 KRA 计算机上,使用旧密钥数据导入 LDIF 文件。
- 打开数据目录。
[root@newkra ~]# cd /export/pki
- 为旧 KRA 实例连接新的 KRA 配置 LDIF 文件和每个导出的 LDIF。例如:
[root@newkra ~]# cat newkra.ldif old2newKRA.ldif > combined.ldif
- 将 LDIF 导入到证书系统 8.1 KRA 实例的目录服务器数据库中。
[root@newkra ~]# /usr/lib[64]/disrv/slapd-instanceName/ldif2db -n newkra.example.com-pki-kra -i /export/pki/combined.ldif
- 为新的 KRA 启动 Directory 服务器实例。
[root@newkra ~]# service dirsrv start
- 启动新的 KRA。
[root@newkra ~]# service pki-kra start