Menu Close
Settings Close

Language and Page Formatting Options

22.2. 新規ホストでの CA の設定

「以前のシステムからのデータのエクスポート」 の既存の Directory Server インスタンスおよび Certificate System インスタンスからデータをエクスポートしたら、新しいホストに認証局(CA)を設定します。
  1. Directory Server を設定します。「Red Hat Directory Server のインストール」を参照してください。
  2. Certificate System リポジトリーを有効にします。「Red Hat サブスクリプションの添付および Certificate System パッケージリポジトリーの有効化」を参照してください。
  3. pki-ca パッケージをインストールします。
    # yum install pki-ca
    Certificate System コンソールなどの追加機能が必要な場合は、対応するパッケージをインストールします。詳細は、「Certificate System パッケージ」 を参照してください。
  4. IPv6 アドレスを使用するホストに CA を設定する場合は、「サブシステムの IPv6 の有効化」 に記載の手順を適用します。
  5. 環境に応じて、この手順が異なります。
    • ハードウェアセキュリティーモジュール(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)を使用しない場合:
      1. 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
        
        このファイルには、その他の証明書および鍵が追加されていることに注意してください。
      2. 直前の手順の出力で、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"
      3. PKCS #12 ファイルから、CA 署名証明書および鍵を除く、その他の証明書および鍵をすべて削除します。以下に例を示します。
        # 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
      4. 移行される CA が中間 CA の場合は、PKCS #12 ファイルからルート CA 証明書を削除します。以下に例を示します。
        # pki pkcs12-cert-del ca-pki-ca \
             --pkcs12-file /tmp/cs_bak/ca.p12 \
             --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
      5. 以下の内容を含むデプロイメント設定ファイルを作成します(例: /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 と同じである必要があります。この値は、/var/lib/instance_name/conf/CS.cfg ファイルの internaldb.basedn パラメーターにあります。
    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=False
    pkispawn プロセスの最後に CA 署名レコードの再作成を無効にします。これにより、古いデータベースをインポートできるようになります。
    pki_ca_signing_serial_number
    CA 署名証明書のシリアル番号を 10 進数で設定します。これは、最初に作成された署名証明書データベースレコードを削除し、代わりに ldif データインポートを使用してインポートします。連続するシリアル番号スキームでは、pki_serial_number_range_start に設定された値の 10 進数表現である必要があります。E.g.: pki_serial_number_range_start=100 pki_ca_signing_serial_number=256
    詳細およびパラメーターの説明は、pkispawn(8) の man ページを参照してください。
  6. デプロイメント設定を使用して新規 CA を作成します。以下に例を示します。
    # pkispawn -s CA -f /root/pki-CA-deployment.txt
  7. 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
    ...