20.2. 迁移 KRA


简单 KRA 迁移需要以下步骤:

位于 alpha.example.com 上的 KRA 包含数据,而位于 omega.example.com 上的 KRA 尚不存在。

Expand
HostnamePKI KRA 版本

alpha.example.com

RHCS 9.7 上的 PKI KRA 10.5

omega.example.com

RHCS 10.4 中的 PKI KRA 10.13

20.2.1. 在新主机上设置 KRA

root 用户身份在 omega.example.com 上:

  1. omega.example.com 上安装和配置一个新的 PKI 10.13 KRA。
  2. 停止 KRA 实例。

    # systemctl stop pki-tomcatd@<pki-kra>
    Copy to Clipboard Toggle word wrap
  3. 创建目录以导出所有必需的文件。

    # mkdir -p /export/pki
    Copy to Clipboard Toggle word wrap
  4. 将 KRA 存储证书导出到文件。稍后您将需要 KRA 存储证书来重新加密 alpha 上 KRA 的解密的旧数据。在以下示例中,该文件名为 omega.crt

    # cd /var/lib/pki/<pki-kra>/alias/
    # pki-server cert-export kra_storage -i <pki-kra> --cert-file <omega.crt>
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 8 (0x8)
            Signature Algorithm: sha256WithRSAEncryption
            Issuer: O = example.com Security Domain, OU = topology-02-CA, CN = CA Signing Certificate
            Validity
                Not Before: Dec 19 10:58:02 2019 GMT
                Not After : Dec  8 10:58:02 2021 GMT
            Subject: O = example.com Security Domain, OU = topology-02-KRA, CN = DRM Storage Certificate
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    RSA Public-Key: (2048 bit)
                    Modulus:
                        00:99:c1:f6:f4:0d:75:67:ff:58:3a:28:ee:34:f1:
                        40:0a:e1:5b:f3:9d:f4:c2:5a:1e:d0:d5:0c:62:c1:
    Copy to Clipboard Toggle word wrap
  5. omega.crt 文件移到 /export/pki 目录。
  6. 停止 Directory 服务器。

    # systemctl stop dirsrv@omega
    Copy to Clipboard Toggle word wrap
    注意

    如果缺少 db2ldif,请安装 389-ds-base-legacy-tools 软件包。

  7. 提取 KRA LDAP 数据库配置。您需要新的 KRA LDAP 数据库配置,才能将旧数据转换为新数据。

    # /usr/lib64/dirsrv/slapd-omega/db2ldif -n <pki-kra-KRA> -a /tmp/omega.ldif
    Copy to Clipboard Toggle word wrap
  8. /tmp/omega.ldif 文件移动到 /export/pki 目录。

    # mv /tmp/omega.ldif /export/pki/
    Copy to Clipboard Toggle word wrap

20.2.2. 从上一个系统中导出内容

以 root 用户身份在 alpha.example.com 上:

  1. 创建通用目录:

    # mkdir -p /export/pki
    Copy to Clipboard Toggle word wrap
  2. 停止 Directory 服务器。在本例中,服务器名为 alpha

    # systemctl stop dirsrv@alpha
    Copy to Clipboard Toggle word wrap
  3. 从 KRA LDAP 数据库生成 LDIF:

    # /usr/lib64/dirsrv/slapd-alpha/db2ldif -n <pki-kra-KRA> -a /tmp/alpha.ldif
    Copy to Clipboard Toggle word wrap
  4. /tmp/alpha.ldif 文件移到 /export/pki 目录中:

    # mv /tmp/alpha.ldif /export/pki/
    Copy to Clipboard Toggle word wrap
  5. 将 KRA NSS 安全数据库复制到数据区域:

    # cp -p /var/lib/pki/<pki-kra>/alias/* /export/pki/
    Copy to Clipboard Toggle word wrap
  6. 进入 /export/pki 目录:

    # cd /export/pki
    Copy to Clipboard Toggle word wrap
  7. omega.example.com 获取包含新 KRA 存储证书的 flat-file :

    sftp root@omega.example.com
    sftp> cd /export/pki
    sftp> get omega.crt
    sftp> quit
    Copy to Clipboard Toggle word wrap
  8. 获取内部密码:

    # cat /var/lib/<instance_name>/conf/password.conf
    Copy to Clipboard Toggle word wrap
  9. alpha.example.com 上运行 KRATool

    # KRATool \
        -kratool_config_file /usr/share/pki/java-tools/KRATool.cfg \
        -source_ldif_file /export/pki/alpha.ldif \
        -target_ldif_file /export/pki/alpha2omega.ldif \
        -log_file /tmp/KRATool_26_05_2023.log \
        -source_pki_security_database_path /export/pki/ \
        -source_storage_token_name "Internal Key Storage Token" \
        -source_storage_certificate_nickname "<storageCert cert-pki-tomcat KRA>" \
        -target_storage_certificate_file /export/pki/omega.crt \
        -source_kra_naming_context alpha.example.com \
        -target_kra_naming_context omega.example.com \
        -unwrap_algorithm AES \
        -process_requests_and_key_records_only
    
    PROCESSING KRATOOL CONFIG FILE: ................................... FINISHED.
    SUCCESSFULLY processed kratool config file!
    Initializing source PKI security databases in '/export/pki/'.
    Retrieving token from CryptoManager.
    Retrieving source storage token called 'Internal Key Storage Token'.
    Retrieving source storage cert with nickname of 'storageCert cert-pki-tomcat KRA'.
    
    BEGIN: Obtaining the private key from the source storage token . . .
    Enter password for Internal Key Storage Token
    **
    
    FINISHED: Obtaining the private key from the source storage token.
    BEGIN: Obtaining the public key from the target storage certificate . . .
    FINISHED: Obtaining the public key from the target storage certificate.
    PROCESSING: xxxxxxxxxxxxxxxxxxxxxxxxx......
    SUCCESSFULLY converted source LDIF file --> target LDIF file!
    
    FINISHED "KRATool -kratool_config_file /usr/share/pki/java-tools/KRATool.cfg -source_ldif_file /export/pki/alpha.ldif -target_ldif_file /export/pki/alpha2omega.ldif -log_file /tmp/DRMTool_20_05_2021.log -source_pki_security_database_path /export/pki/ -source_storage_token_name 'Internal Key Storage Token' -source_storage_certificate_nickname 'storageCert cert-pki-tomcat KRA' -target_storage_certificate_file /export/pki/omega.crt -source_pki_security_database_pwdfile '/export/pki/password.cfg' -source_kra_naming_context 'alpha.example.com' -target_kra_naming_context 'omega.example.com' -process_requests_and_key_records_only"
    Copy to Clipboard Toggle word wrap
    注意

    或者,您可以创建一个受未授权访问保护的纯文本文件,该文件仅包含证书或证书数据库自动访问的密码。使用 -source_pki_security_database_pwdfile < path_to_PKI_password_file> 命令行选项将此文件添加到 KRATool 中。

  10. alpha2omega.ldif 文件复制到 omega.example.com

    sftp root@omega.example.com
    sftp> cd /export/pki
    sftp> put alpha2omega.ldif
    sftp> quit
    Copy to Clipboard Toggle word wrap

20.2.3. 将数据导入到新的 KRA

root 用户身份在 omega.example.com 上:

  1. 前往 /export/pki 目录。

    # cd /export/pki
    Copy to Clipboard Toggle word wrap
  2. 连接 ldif 文件:

    # cat omega.ldif alpha2omega.ldif > omega_alpha.ldif
    Copy to Clipboard Toggle word wrap
  3. omega_alpha.ldif 文件导入到与 PKI KRA 关联的 LDAP 数据库中:

    # /usr/lib64/dirsrv/slapd-omega/ldif2db -n <pki-kra-KRA> -i /export/pki/omega_alpha.ldif
    Copy to Clipboard Toggle word wrap
  4. 启动 Directory 服务器:

    # systemctl start dirsrv@omega
    Copy to Clipboard Toggle word wrap
  5. 启动 KRA 实例。

    # systemctl start pki-tomcatd@<pki-kra>
    Copy to Clipboard Toggle word wrap

最后一步是执行从 KRA Agent 页面迁移的密钥恢复。

[root@pki1 pki]# pki -d /root/nssdb/ -p 21080 -n '<PKI Administrator - example.com Security Domain>' kra-key-find
Enter password for Internal Key Storage Token

----------------
3 key(s) matched
----------------
  Key ID: 0x1
  Algorithm: 1.2.840.113549.1.1.1
  Size: 1024
  Owner: UID=alpha1

  Key ID: 0x2
  Algorithm: 1.2.840.113549.1.1.1
  Size: 1024
  Owner: UID=alpha2

  Key ID: 0x3
  Algorithm: 1.2.840.113549.1.1.1
  Size: 1024
  Owner: UID=alpha3
----------------------------
Number of entries returned 3
----------------------------
Copy to Clipboard Toggle word wrap

20.2.5. 升级后测试

在升级前跟踪用户密钥的关键恢复操作。

流程 21.1.密钥恢复测试

  1. 显示升级前创建的 base64 用户证书。

    # <pki -n 'PKI Administrator - example.com>' -c <Secret.123> ca-cert-export <0xd>
      Serial Number: 0xd
      Subject DN: UID=alpha
      Issuer DN: CN=CA Signing Certificate,OU=pki-tomcat,O=example.com Security Domain
      Status: VALID
      Not Valid Before: Wed Jun 07 01:49:07 EDT 2023
      Not Valid After: Mon Dec 04 01:49:
    
    ----BEGIN CERTIFICATE----
    MIIDODCCAiCgAwIBAgIBDTANBgkqhkiG9w0BAQsFADBtMTUwMwYDVQQKDCxpZG1xZS5sYWIuZW5n
    LmJvcy5yZWRoYXQuY29tIFNlY3VyaXR5IERvbWFpbjETMBEGA1UECwwKcGtpLXRvbWNhdDEfMB0G
    A1UEAwwWQ0EgU2lnbmluZyBDZXJ0aWZpY2F0ZTAeFw0yMzA2MDcwNTQ5MDdaFw0yMzEyMDQwNjQ5
    
                [...output truncated...]
    
    EJyoMFM+RaAcTh+C3S0JZEoKlAS3UlJOMxk3BFZdWpv7ia+1faV6LFPZSCZ/m8i2c3KZNxFW2xv1
    DTIIVc7a1uEDApVDHf5aFcm0nGpEVeK+yvP4r1eD
    ----END CERTIFICATE----
    Copy to Clipboard Toggle word wrap
  2. 使用此证书通过 KRA Agent UI 生成密钥恢复请求。
  3. 批准恢复请求。

    # pki -c <Secret.123> -n '<PKI Administrator - example.com Security Domain>' -p 8443 -P https kra-key-request-review <0x2> --action approve
    -----
    Result
    ------
    Request ID: 0x2
    Type: recovery
    Status: approved
    Copy to Clipboard Toggle word wrap
  4. 从 KRA UI 下载密钥。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat