20.2. KRA の移行
単純な KRA 移行には、次の手順が必要です。
alpha.example.com にある KRA にはデータが含まれていますが、omega.example.com にある KRA はまだ存在しません。
Hostname | PKI KRA バージョン |
---|---|
alpha.example.com | PKI KRA 10.5 on RHCS 9.7 |
omega.example.com | PKI KRA 10.13 on RHCS 10.4 |
20.2.1. 新しいホストでの KRA の設定
omega.example.com で root
ユーザーとして、以下のように設定します。
- omega.example.com に新しい PKI 10.13 KRA をインストールして設定します。
KRA インスタンスを停止します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl stop pki-tomcatd@<pki-kra>
# systemctl stop pki-tomcatd@<pki-kra>
必要なファイルをすべてエクスポートするディレクトリーを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir -p /export/pki
# mkdir -p /export/pki
KRA ストレージ証明書をファイルにエクスポートします。アルファ上の KRA から復号化された古いデータを再暗号化するには、後で KRA ストレージ証明書が必要になります。以下の例では、ファイルの名前は
omega.crt
です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd /var/lib/pki/<pki-kra>/alias/ pki-server cert-export kra_storage -i <pki-kra> --cert-file <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:
-
omega.crt
ファイルを/export/pki
ディレクトリーに移動します。 Directory Server を停止します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl stop dirsrv@omega
# systemctl stop dirsrv@omega
注記db2ldif
が見つからない場合、389-ds-base-legacy-tools
パッケージをインストールします。KRA LDAP データベース設定を抽出します。古いデータを新しいデータに変換するには、新しい KRA LDAP データベース設定が必要になります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/lib64/dirsrv/slapd-omega/db2ldif -n <pki-kra-KRA> -a /tmp/omega.ldif
# /usr/lib64/dirsrv/slapd-omega/db2ldif -n <pki-kra-KRA> -a /tmp/omega.ldif
/tmp/omega.ldif
ファイルを/export/pki
ディレクトリーに移動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mv /tmp/omega.ldif /export/pki/
# mv /tmp/omega.ldif /export/pki/
20.2.2. 以前のシステムからのコンテンツのエクスポート
alpha.example.com で root ユーザーとして以下を行います。
共通のディレクトリーを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir -p /export/pki
# mkdir -p /export/pki
Directory Server を停止します。以下の例では、サーバーの名前は alpha です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl stop dirsrv@alpha
# systemctl stop dirsrv@alpha
KRA LDAP データベースから LDIF を生成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/lib64/dirsrv/slapd-alpha/db2ldif -n <pki-kra-KRA> -a /tmp/alpha.ldif
# /usr/lib64/dirsrv/slapd-alpha/db2ldif -n <pki-kra-KRA> -a /tmp/alpha.ldif
/tmp/alpha.ldif
ファイルを/export/pki
ディレクトリーに移動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mv /tmp/alpha.ldif /export/pki/
# mv /tmp/alpha.ldif /export/pki/
KRA NSS セキュリティーデータベースをデータ領域にコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cp -p /var/lib/pki/<pki-kra>/alias/* /export/pki/
# cp -p /var/lib/pki/<pki-kra>/alias/* /export/pki/
/export/pki
ディレクトリーに移動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd /export/pki
# cd /export/pki
omega.example.com から、新しい KRA のストレージ証明書が含まれるフラットファイを取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sftp root@omega.example.com sftp> cd /export/pki sftp> get omega.crt sftp> quit
sftp root@omega.example.com sftp> cd /export/pki sftp> get omega.crt sftp> quit
内部パスワードを取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /var/lib/<instance_name>/conf/password.conf
# cat /var/lib/<instance_name>/conf/password.conf
alpha.example.com で
KRATool
を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
に追加します。alpha2omega.ldif
ファイルを omega.example.com にコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sftp root@omega.example.com sftp> cd /export/pki sftp> put alpha2omega.ldif sftp> quit
sftp root@omega.example.com sftp> cd /export/pki sftp> put alpha2omega.ldif sftp> quit
20.2.3. 新規 KRA へのデータのインポート
omega.example.com で root
ユーザーとして、以下のように設定します。
/export/pki
ディレクトリーに移動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd /export/pki
# cd /export/pki
ldif
ファイルを連結します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat omega.ldif alpha2omega.ldif > omega_alpha.ldif
# cat omega.ldif alpha2omega.ldif > omega_alpha.ldif
omega_alpha.ldif
ファイルを、PKI KRA に関連付けられた LDAP データベースにインポートします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/lib64/dirsrv/slapd-omega/ldif2db -n <pki-kra-KRA> -i /export/pki/omega_alpha.ldif
# /usr/lib64/dirsrv/slapd-omega/ldif2db -n <pki-kra-KRA> -i /export/pki/omega_alpha.ldif
Directory Server を起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start dirsrv@omega
# systemctl start dirsrv@omega
KRA インスタンスを起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start pki-tomcatd@<pki-kra>
# systemctl start pki-tomcatd@<pki-kra>
20.2.4. KRA エージェントページから移行したキーの存在の検証
最後に、KRA エージェントページから移行した鍵のキーリカバリーを実行します。
pki -d /root/nssdb/ -p 21080 -n '<PKI Administrator - example.com Security Domain>' kra-key-find
[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
----------------------------
20.2.5. アップグレード後のテスト
アップグレード前にアーカイブされたユーザーキーのキーリカバリー操作を実行します。
手順 21.1. キーリカバリーテスト
アップグレード前に作成された base64 ユーザー証明書を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pki -n 'PKI Administrator - example.com>' -c <Secret.123> ca-cert-export <0xd>
# <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----
- この証明書を使用して、KRA エージェント UI を通じてキーリカバリー要求を生成します。
リカバリー要求を承認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -c <Secret.123> -n '<PKI Administrator - example.com Security Domain>' -p 8443 -P https kra-key-request-review <0x2> --action approve
# 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
- KRA UI からキーをダウンロードします。