搜索

21.2. 迁移 KRA

download PDF
简单 KRA 迁移需要以下步骤:
位于 alpha.example.com 上的 KRA 包含数据,而位于 omega.example.com 上的 KRA 尚不存在。
HostnamePKI KRA 版本
alpha.example.comRHCS 9.7 上的 PKI KRA 10.5
omega.example.comRHCS 10.4 上的 PKI KRA 10.13

21.2.1. 在新主机上设置 KRA

omega.example.com 上,以 root 用户身份:
  1. omega.example.com 上安装和配置一个新的 PKI 10.13 KRA。
  2. 停止 KRA 实例。
    # systemctl stop pki-tomcatd@<pki-kra>
  3. 创建目录以导出所有必需的文件。
    # mkdir -p /export/pki
  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:
    
  5. omega.crt 文件移到 /export/pki 目录中。
    # mv omega.crt /export/pki/
  6. 停止 Directory 服务器。
    # systemctl stop dirsrv@omega
    注意
    如果缺少 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
  8. /tmp/omega.ldif 文件移到 /export/pki 目录。
    # mv /tmp/omega.ldif /export/pki/

21.2.2. 从以前的系统导出内容

alpha.example.com 上,以 root 用户身份:
  1. 创建通用目录:
    # mkdir -p /export/pki
  2. 停止 Directory 服务器。在本例中,服务器名为 alpha:
    # systemctl stop dirsrv@alpha
  3. 从 KRA LDAP 数据库生成 LDIF:
    # /usr/lib64/dirsrv/slapd-alpha/db2ldif -n <pki-kra-KRA> -a /tmp/alpha.ldif
  4. /tmp/alpha.ldif 文件移到 /export/pki 目录中:
    # mv /tmp/alpha.ldif /export/pki/
  5. 将 KRA NSS 安全数据库复制到数据区域:
    # cp -p /var/lib/pki/<pki-kra>/alias/* /export/pki/
  6. 进入 /export/pki 目录:
    # cd /export/pki
  7. omega.example.com 获取包含新 KRA 存储证书的 flat-file:
    sftp root@omega.example.com
    sftp> cd /export/pki
    sftp> get omega.crt
    sftp> quit
    
  8. 获取内部密码:
    # cat /var/lib/<instance_name>/conf/password.conf
  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"
    
    注意
    或者,您可以创建一个受未授权访问的纯文本文件,其中包含一个被证书或证书数据库自动访问的密码。使用 -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
    

21.2.3. 将数据导入到新的 KRA 中

omega.example.com 上,以 root 用户身份:
  1. 进入 /export/pki 目录
    # cd /export/pki
  2. 连接 ldif 文件:
    # cat omega.ldif alpha2omega.ldif > omega_alpha.ldif
  3. omega_alpha.ldif 文件导入到与 PKI KRA 关联的 LDAP 数据库中:
    # /usr/lib64/dirsrv/slapd-omega/ldif2db -n <pki-kra-KRA> -i /export/pki/omega_alpha.ldif
  4. 启动 Directory 服务器:
    # systemctl start dirsrv@omega
  5. 启动 KRA 实例。
    # systemctl start pki-tomcatd@<pki-kra>

21.2.4. 从 KRA Agent Page 验证迁移的密钥是否存在

最后一步是执行从 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
----------------------------

21.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:07 EST 2023
    
    ----BEGIN CERTIFICATE----
    MIIDODCCAiCgAwIBAgIBDTANBgkqhkiG9w0BAQsFADBtMTUwMwYDVQQKDCxpZG1xZS5sYWIuZW5n
    LmJvcy5yZWRoYXQuY29tIFNlY3VyaXR5IERvbWFpbjETMBEGA1UECwwKcGtpLXRvbWNhdDEfMB0G
    A1UEAwwWQ0EgU2lnbmluZyBDZXJ0aWZpY2F0ZTAeFw0yMzA2MDcwNTQ5MDdaFw0yMzEyMDQwNjQ5
    
                [...output truncated...]
    
    EJyoMFM+RaAcTh+C3S0JZEoKlAS3UlJOMxk3BFZdWpv7ia+1faV6LFPZSCZ/m8i2c3KZNxFW2xv1
    DTIIVc7a1uEDApVDHf5aFcm0nGpEVeK+yvP4r1eD
    ----END CERTIFICATE----
    
  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
    
  4. 从 KRA UI 下载密钥。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.