22.2. 新規ホストでの CA の設定
「以前のシステムからのデータのエクスポート」 で既存の Directory Server と Certificate System インスタンスからデータをエクスポートしたら、新しいホストに認証局を設定します。
- Directory Server を設定します。「Red Hat Directory Server のインストール」を参照してください。
- Certificate System リポジトリーを有効にします。「Red Hat サブスクリプションの添付および Certificate System パッケージリポジトリーの有効化」を参照してください。
- pki-ca パッケージをインストールします。
# yum install pki-ca
Certificate System コンソールなどの追加機能が必要な場合は、対応するパッケージをインストールします。詳細は、「Certificate System パッケージ」 を参照してください。 - IPv6 アドレスを使用するホストで CA をセットアップする場合は、「サブシステムの IPv6 の有効化」 で説明されている手順を適用します。
- 環境によって、この手順は異なります。
- ハードウェアセキュリティーモジュール (HSM) を使用する場合:
/root/pki-CA-deployment.txt
などのデプロイメント設定ファイルを次の内容で作成します。[DEFAULT] pki_instance_name=instance_name pki_admin_password=caadmin_password pki_client_pkcs12_password=pkcs12_file_password pki_ds_password=DS_password pki_hsm_enable=True pki_hsm_libfile=path_to_HSM_library pki_hsm_modulename=HSM_module_name pki_token_name=HSM_token_name pki_token_password=HSM_token_password pki_ds_ldap_port=389 pki_existing=True [CA] pki_ca_signing_csr_path=/tmp/cs_bak/ca_signing.csr pki_ca_signing_cert_path=/tmp/cs_bak/ca_signing.crt pki_ca_signing_nickname=caSigningCert ca-pki-ca pki_ca_signing_token=HSM_token_name pki_ds_base_dn=o=pki-tomcat-CA pki_ds_database=instance_name-CA pki_serial_number_range_start=4e pki_request_number_range_start=30 pki_master_crl_enable=False pki_cert_chain_path=/tmp/cs_bak/rootca_signing.crt pki_cert_chain_nickname=caSigningCert cert-top-rootca pki_ca_signing_record_create=False pki_ca_signing_serial_number=decimal_CA_signing_certificate_serial
前の例で使用されたパラメーターの説明については、この手順の最後にある 表22.1「pkispawn パラメーターの説明」 を参照してください。 - ハードウェアセキュリティーモジュール (HSM) を使用しない場合:
- PKCS #12 ファイルに CA 署名証明書とキーが含まれていることを確認します。以下はその例です。
# pki pkcs12-cert-find --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt --------------- 1 entries found --------------- Certificate ID: 308b4c7d4b5efc4052aec26e49a2c5e2e14c9e90 Serial Number: 0x1 Nickname: caSigningCert ca-pki-ca Subject DN: CN=CA Signing Certificate,O=EXAMPLE Issuer DN: CN=CA Signing Certificate,O=EXAMPLE Trust Flags: CTu,Cu,Cu Has Key: true # pki pkcs12-key-find --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt --------------- 1 entries found --------------- Key ID: 308b4c7d4b5efc4052aec26e49a2c5e2e14c9e90 Subject DN: CN=CA Signing Certificate,O=EXAMPLE Algorithm: RSA
このファイルには、他の証明書とキーを追加で含めることができる点に注意してください。 - 前の手順の出力で、CA 署名証明書の信頼フラグを確認します。フラグが
CTu,Cu,Cu
に設定されていない場合、または欠落している場合は、フラグをリセットします。# pki pkcs12-cert-mod caSigningCert cert-pki-tomcat CA \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt \ --trust-flags "CTu,Cu,Cu"
- CA 署名証明書とキーを除く、他のすべての証明書とキーを PKCS #12 ファイルから削除します。以下はその例です。
# pki pkcs12-cert-del Server-Cert root_CA_nickname \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt # pki pkcs12-cert-del "subsystemCert ca-pki-ca" \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt # pki pkcs12-cert-del "ocspSigningCert ca-pki-ca" \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt # pki pkcs12-cert-del "auditSigningCert ca-pki-ca" \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
- 移行する CA が中間 CA の場合は、ルート CA 証明書を PKCS #12 ファイルから削除します。以下はその例です。
# pki pkcs12-cert-del ca-pki-ca \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
/root/pki-CA-deployment.txt
などのデプロイメント設定ファイルを次の内容で作成します。[DEFAULT] pki_instance_name=instance_name pki_admin_password=caadmin_password pki_client_pkcs12_password=pkcs12_file_password pki_ds_password=DS_password pki_ds_ldap_port=389 pki_existing=True [CA] pki_ca_signing_nickname=caSigningCert ca-pki-ca pki_ca_signing_csr_path=/tmp/cs_bak/ca_signing.csr pki_pkcs12_path=/tmp/cs_bak//cs_bak/ca.p12 pki_pkcs12_password=pkcs12_file_password pki_ds_base_dn=o=pki-tomcat-CA pki_ds_database=pki-tomcat-CA pki_serial_number_range_start=43 pki_request_number_range_start=30 pki_master_crl_enable=False pki_cert_chain_path=/tmp/cs_bak/rootca_signing.crt pki_cert_chain_nickname=caSigningCert cert-top-rootca pki_ca_signing_record_create=False pki_ca_signing_serial_number=decimal_CA_signing_certificate_serial
前の例で使用されたパラメーターの説明については、表22.1「pkispawn パラメーターの説明」 を参照してください。
表22.1 pkispawn パラメーターの説明
パラメーターおよび設定説明pki_hsm_*
およびpki_token_*
HSM との通信を有効にします。これらのパラメーターは、HSM を使用して CA をセットアップする場合にのみ設定してください。pki_existing=True既存の CA メカニズムを使用するように設定します。pki_ca_signing_nickname
CA 署名ニックネームは、前のインストールで使用されたものとまったく同じである必要があります。そうでない場合、インストーラーは署名キーを見つけることができません。pki_ca_signing_*
証明書署名要求 (CSR) および既存のマシンからコピーされた証明書ファイルへのパスを設定します。pki_pkcs12_*
PKCS #12 ファイルへのパスと、ファイルの復号化に使用するパスワードを設定します。HSM を使用して CA をデプロイする場合は、このパラメーターを設定しないでください。pki_ds_base_dn
Directory Server ベース識別名 (DN) を設定します。値は、以前の CA と同じでなければなりません。この値は、以前のホストのinternaldb.basedn
/var/lib/instance_name/conf/CS.cfg
ファイルのパラメーター。pki_serial_number_range_start
シリアル番号は重要です。値は、以前の CA で使用される最後の数値よりも高くする必要があります。すでに使用されている番号を表示するには、古い CA のエージェントインターフェイスを参照してください。このパラメーターは、先頭の0x
接頭辞を除いた 16 進形式で設定されます。例で使用されている値 (4e
) は、10 進数で78
です。pki_request_number_range_start
リクエスト番号が重要である。値は、以前の CA で使用される最後の数値よりも高くする必要があります。すでに使用されている番号を表示するには、古い CA のエージェントインターフェイスを参照してください。値は 10 進数の形式で設定されます。pki_master_crl_enable=Falseセットアップ中の証明書失効リスト (CRL) の初期作成と公開を防ぎます。代わりに、CRL はデータベースの移行時に古いデータからインポートされます。pki_cert_chain_path
およびpki_cert_chain_nickname
古い CA が中間 CA の場合にのみ、これらのパラメーターを設定します。この場合、ルート CA 証明書ファイルへのパスと、証明書を Network Security Services (NSS) データベースに保存するときに使用するニックネームにパラメーターを設定します。pki_ca_signing_record_create=Falsepkispawn プロセスの最後に CA 署名レコードの再作成を無効にします。これにより、古いデータベースをインポートできます。pki_ca_signing_serial_number
CA 署名証明書のシリアル番号を 10 進数で設定します。これは、最初に作成された署名証明書データベースレコードを削除し、代わりに ldif データインポートを介してインポートするためです。連続シリアル番号スキームでは、pki_serial_number_range_start に設定された値の 10 進数表現である必要があります。例: pki_serial_number_range_start=100 pki_ca_signing_serial_number=256詳細およびパラメーターの説明は、pkispawn(8) man ページを参照してください。 - デプロイメント設定ファイルを使用して新しい CA を作成します。以下はその例です。
# pkispawn -s CA -f /root/pki-CA-deployment.txt
- CA 署名キー ID が既存の CA と新しい CA で同じであることを確認します。以下はその例です。
# grep "internal=" /var/lib/instance_name/conf/password.conf | \ awk -F= '{print $2;}' > internal.txt
# certutil -K -d /var/lib/instance_name/alias/ -f internal.txt ... < 2> rsa 7bd4dc662670ebe08a35086b054175559608ac20 caSigningCert ca-pki-ca ...