7.12. PKI ロールユーザーの作成


このセクションでは、サブシステムのインストール後に行われるユーザー設定を説明します。

重要

前の章の例の一部では、OS ルート以外の pki ロールユーザーの例 (PKI エージェント jsmith など) がすでに作成されており、pki ロール特権で職務を遂行する準備ができていることを前提としています。したがって、これらのサンプルユーザーは、証明書要求の処理などの操作に使用することが推奨されています。

ただし、すべての PKI ロールの特権が付与されている PKI ブートストラップ管理者証明書は、評価/テストの目的で使用できます。この場合、ブートストラップユーザーの証明書データベースディレクトリーを使用して、単一のロールのユーザー証明書のルートとして CSR を生成 (および発行時に証明書をインポート) することができます。

実際の操作では、インストールが完了したら、この章の手順に従って、通常の操作用に特権を制限したロールを作成することを強く推奨します。実際のロールユーザーが作成され、正しく機能することがテストされたら、「認証データベースからのブートストラップ管理ユーザーの削除 (オプション)」 に従ってブートストラップ証明書を削除/無効化できます。

設定プロセスでは、デモ目的で一部のロールユーザーアカウントのみが作成されます (具体的には、SubCA ロールユーザーの設定)。実際のプロセスで PKI 環境を管理するために、インスタンスの設定後に、多数の管理者、エージェント、および監査人が作成されます。

必要に応じて管理者、エージェント、および監査ユーザーを作成して、CA、OCSP、KRA など、関連する RHCS サブシステムをテストします。TMS が該当する場合は、TKS と TPS の管理者と監査ユーザー、および TPS の Operator ユーザーを作成します。

注記

次の手順は、PKI ロールユーザー (従属 CA の 「OS ユーザーとグループの作成」 で作成されたユーザー jgeniejsmith、および aguru) を設定する方法だけを説明しています。これらの例では、証明書要求 (CSR) は、SubCA のブートストラップ管理者証明書を使用して承認されます。

7.12.1. 前提条件

証明書を発行するための推奨手順を実行する前に、SubCA ブートストラップ管理者証明書/キーがタスクを実行する準備ができていることを確認してください。

  1. root ユーザーとして rhcs10.example.com にログインします。
  2. nssdb に管理者/エージェント証明書 (この場合は SubCA のブートストラップ管理者証明書) が存在することを確認します (これは 「ブートストラップ以外のエージェントユーザー証明書の発行」 で設定しました)。

    Copy to Clipboard Toggle word wrap
    # certutil -d /root/.dogtag/pki_rsa_bootstrap/certs_db -L
    
    Certificate Nickname                            Trust Attributes
                                                    SSL,S/MIME,JAR/XPI
    PKI Bootstrap Administrator for RSA-SubCA       u,u,u
    CA Signing Cert - rhcs10-RSA-RootCA             CT,C,C
    CA Signing Cert - rhcs10-RSA-SubCA              CT,C,C
    PKI Bootstrap Administrator for RSA-RootCA      u,u,u

7.12.2. 管理者ユーザー

  • adminV (このユーザーはテスト全体を通して有効な証明書を持っています)
  • adminR (このユーザーは呼び出された証明書を持っています)
  • adminE (このユーザーの 証明書 は期限が切れています)
  • adminTCA (このユーザーの証明書は 信頼された CA で署名されています)
  • adminC (最初はこのユーザーが管理者グループに割り当てられます。テストプロセス中に、このユーザーは別のグループに割り当てられます)
  • adminUTCA (このユーザーの証明書は 信頼されていない CA で発行されています)

    注記

    この最後のものには、2 つ目の CA を設定する必要があります。

7.12.2.1. pki 管理者の証明書とロールの設定

次の手順例では、OS ユーザー jgenie の CMC 署名付きユーザー証明書 rsa_SubCA_AdminV を作成します。この CMC 要求は、次のセクションの SubCA ブートストラップ管理者証明書を使用して署名されます。

7.12.2.1.1. pki 管理者向けの CSR の生成

この手順は、pki 管理者 (例: Jane Genie、jgenie) によって実行され、この管理者ユーザーの CSR を作成することを目的としています。

  1. rhcs10.example.com に 'Administrator' (root 以外のユーザー) としてログインします (この例では jgenie)。
  2. クライアント nssdb がまだ存在しない場合は、作成します。

    Copy to Clipboard Toggle word wrap
    $ pki -d /home/jgenie/certs_db -c SECret.123 client-init
  3. PKCS10Client ツールを使用して、PKCS#10 証明書要求を生成します。

    注記

    サブシステムごとに、subjectDN と.req ファイル名を適宜変更します (例:OCSP_AdminV、KRA_AdminV など)。

    Copy to Clipboard Toggle word wrap
    $ PKCS10Client -d /home/jgenie/certs_db -p SECret.123 -n "cn=rsa_SubCA_AdminV, uid=rsa_SubCA_AdminV" -o /home/jgenie/certs_db/rsa_SubCA_AdminV.req
    
    PKCS10Client: Certificate request written into /home/jgenie/certs_db/rsa_SubCA_AdminV.req
    PKCS10Client: PKCS#10 request key id written into /home/jgenie/certs_db/rsa_SubCA_AdminV.req.keyId

    jgenie ユーザーは、証明書要求 (CSR) /home/jgenie/certs_db/rsa_SubCA_AdminV.req を、SubCA のブートストラップ管理者証明書を保持しているユーザー (root ユーザーなど) に送信して、CMC に署名して要求を承認する必要があります。

7.12.2.1.2. pki 管理者ユーザーの CSR 承認

このセクションでは、SubCA のブートストラップ管理者証明書を保持しているユーザー (root ユーザーなど) が実行する手順を説明します。CSR (たとえば、前のセクションで jgenie によって作成された) を処理して pki 管理者証明書を発行する方法を示します。

前提条件

  • root ユーザーとして RHCS マシンにログインしている。
  • 管理者/エージェント証明書 (この例では SubCA ブートストラップ証明書) が nssdb に存在する。

CMC を介した証明書の発行

ブートストラップ管理証明書/キーを保持しているユーザーは、jgenie から送信された CSR を次のように処理できるようになります。

  1. jgenie から受信した CSR ファイル (rsa_SubCA_AdminV.req) を /root/.dogtag/pki_rsa_bootstrap/certs_db ディレクトリーに配置します。
  2. CMC 要求を生成します。

    1. CMCRequest 設定ファイルを作成します。以下に例を示します。

      Copy to Clipboard Toggle word wrap
      # vi /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AdminV.cfg
      Copy to Clipboard Toggle word wrap
      ### numRequests: Total number of PKCS10 requests or CRMF requests.
      numRequests=1
      
      ### input: full path for the PKCS10 request or CRMF request,
      ### The content must be in Base-64 encoded format.
      ### Multiple files are supported. They must be separated by a space.
      input=/root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AdminV.req
      
      ### output: full path for the CMC request in binary format
      output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AdminV_pkcs10.req
      
      ### tokenname: name of the token where the user signing cert can be found (default is internal)
      tokenname=internal
      
      ### nickname: nickname for the user cert that will be used to sign the CMC full request.
      nickname=PKI Bootstrap Administrator for RSA-SubCA
      
      ### dbdir: directory for cert8.db, key3.db and secmod.db
      dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db
      
      ### password: password for the cert8.db that stores the user signing cert and keys
      password=SECret.123
      
      ### format: request format, either pkcs10 or crmf
      format=pkcs10
      
      ### identityProofV2.enable: if true, then the request will contain this control. Otherwise, false.
      ### Note that if both identityProof and identityProofV2 are enabled,
      ### identityProofV2 takes precedence; Only one of them can be active at a time
      ### Supported hashAlg are:
      ### SHA-256, SHA-384, and SHA-512
      ### Supported macAlg are:
      ### SHA-256-HMAC, SHA-384-HMAC, and SHA-512-HMAC
      identityProofV2.enable=false
      identityProofV2.hashAlg=SHA-512
      identityProofV2.macAlg=SHA-256-HMAC
      request.privKeyId= _<private key id>_
      注記

      request.privKeyId= <private key id> の場合: 前の手順で生成された秘密鍵 ID を使用します。出力メッセージを参照してください。

      Copy to Clipboard Toggle word wrap
      PKCS10Client: PKCS#10 request key id written into /home/jgenie/certs_db/rsa_SubCA_AdminV.req.keyId

      これは、key_id=cat /home/jgenie/certs_db/rsa_SubCA_AdminV.req.keyId;sed -i 's/request.privKeyId= <private key id>/request.privKeyId='$key_id'/g' /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AdminV.cfg で簡単に実行できます。

    2. CMCRequest コマンドを使用してリクエストを生成します。

      Copy to Clipboard Toggle word wrap
      # CMCRequest /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AdminV.cfg
      
      cert/key prefix =
      path = /root/.dogtag/pki_rsa_bootstrap/certs_db
      CryptoManger initialized
      token internal logged in...
      got signerCert: PKI Bootstrap Administrator for RSA-SubCA
      createPKIData: begins
      k=0
      createPKIData:  format: pkcs10
      useSharedSecret is false...
      signData: begins:
      getPrivateKey: got signing cert
      signData:  got signer privKey
      createSignedData: begins
      getSigningAlgFromPrivate: begins.
      getSigningAlgFromPrivate: found signingKeyType=RSA
      getSigningAlgFromPrivate: using SignatureAlgorithm: RSASignatureWithSHA256Digest
      createSignedData: digest created for pkidata
      createSignedData: digest algorithm =RSASignatureWithSHA256Digest
      createSignedData: building cert chain
      signData: signed request generated.
      getCMCBlob: begins
      getCMCBlob: generating signed data
      
      The CMC enrollment request in base-64 encoded format:
      
      . . . Output omitted . . .
      
      The CMC enrollment request in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/cmc.rsa_SubCA_AdminV_pkcs10.req
  3. CMC 要求を送信します。

    1. HttpClient 設定ファイルを作成します。以下に例を示します。

      Copy to Clipboard Toggle word wrap
      # vi /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AdminV_signed.cfg
      Copy to Clipboard Toggle word wrap
      ### host: host name for the http server
      host=rhcs10.example.com
      
      ### port: port number
      port=31443
      
      ### secure: true for secure connection, false for nonsecure connection
      secure=true
      
      ### input: full path for the enrollment request, the content must be in binary format
      input=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AdminV_pkcs10.req
      
      ### output: full path for the response in binary format
      output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AdminV_pkcs10.resp
      
      ### tokenname: name of the token where the SSL client authentication cert can be found (default is internal)
      ### This parameter will be ignored if secure=false
      tokenname=internal
      
      ### dbdir: directory for cert8.db, key3.db and secmod.db
      ### This parameter will be ignored if secure=false
      dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db
      
      ### clientmode: true for client authentication, false for no client authentication
      ### This parameter will be ignored if secure=false
      clientmode=true
      
      ### password: password for cert8.db
      ### This parameter will be ignored if secure=false and clientauth=false
      password=SECret.123
      
      ### nickname: nickname for client certificate
      ### This parameter will be ignored if clientmode=false
      nickname=PKI Bootstrap Administrator for RSA-SubCA
      
      ### servlet: servlet name
      servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caFullCMCUserCert
    2. HttpClient コマンドを使用して要求を送信します。

      Copy to Clipboard Toggle word wrap
      # HttpClient /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AdminV_signed.cfg
      
      Total number of bytes read = 3455
      after SSLSocket created, thread token is NSS FIPS 140-2 User Private Key
      client cert is not null
      handshake happened
      writing to socket
      Total number of bytes read = 2592
      MIIKHAYJKoZIhvcNAQcCoIIKDTCCCgkCAQMxDzANBglghkgBZQMEAgMFADAxBggr
      
      . . . Output omitted . . .
      
      The response in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AdminV_pkcs10.resp
  4. CMCResponse を使用して応答を処理し、チェーン内のすべての証明書を PEM 形式で個別に表示します。

    Copy to Clipboard Toggle word wrap
    # CMCResponse -d /root/.dogtag/pki_rsa_bootstrap/certs_db -i /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AdminV_pkcs10.resp -o /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AdminV_pkcs7.crt
    
    Cert:0
    ...
    ===
    Cert:1
    ...
    ===
    Cert:2
    ...
    ===
    Certificates:
        Certificate:
           Data:
               Version:  v3
               Serial Number: 0xF64CE29
               Signature Algorithm: SHA512withRSA - 1.2.840.113549.1.1.13
               Issuer: CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA
               Validity:
                   Not Before: Friday, January 5, 2018 8:09:48 PM EST America/New_York
                   Not  After: Wednesday, July 4, 2018 8:09:48 PM EDT America/New_York
               Subject: CN=rsa_SubCA_AdminV,UID=rsa_SubCA_AdminV
    
    . . . Output omitted . . .
    
    Number of controls is 1
    Control #0: CMCStatusInfoV2
      OID: {1 3 6 1 5 5 7 7 25}
      BodyList: 1
      Status: SUCCESS
  5. エージェント証明書を /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AdminV_b64.crt にコピーします。

    Copy to Clipboard Toggle word wrap
    # pki -p 31443 ca-cert-export <rsa_SubCA_AdminV_serial_number> --output-file /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AdminV_b64.crt
7.12.2.1.3. pki admin ユーザーの作成および新しい証明書の関連付け

この手順は、既存の pki admin ユーザー (この場合は、SubCA ブートストラップ証明書を保持している root ユーザー) によって実行されます。

pki 管理者ユーザーを作成し、新しい証明書をこのユーザーに関連付けるには、次の手順に従います。

  1. ユーザーを作成します。この例では rsa_SubCA_AdminV :

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-user-add --fullName="rsa_SubCA_AdminV" rsa_SubCA_AdminV
    ---------------------
    Added user "rsa_SubCA_AdminV"
    ---------------------
     User ID: rsa_SubCA_AdminV
     Full name: rsa_SubCA_AdminV

    同様に

    • KRA の場合は、KRA の管理者ニックネーム、ホスト名、およびポートを指定して kra-user-add コマンドを使用し、新しいユーザー (KRA_AdminV など) を作成します。
    • OCSP の場合は、OCSP の管理者ニックネーム、ホスト名、およびポートを指定して ocsp-user-add コマンドを使用し、新しいユーザー (OCSP_AdminV など) を作成します。

    TMS が該当する場合:

    • TKS の場合、TKS の管理者ニックネーム、ホスト名、ポートを指定して tks-user-add コマンドを使用し、新しいユーザー (例: TKS_AdminV) を作成します。
    • TPS の場合、TPS の管理者ニックネーム、ホスト名、ポートを指定して tps-user-add コマンドを使用し、新しいユーザー (例: TPS_AdminV) を作成します。
  2. 新しいユーザーを Administrators グループに追加します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-group-member-add Administrators rsa_SubCA_AdminV
    -----------------------------
    Added group member "rsa_SubCA_AdminV"
    -----------------------------
     User: rsa_SubCA_AdminV

    同様に

    • 新しく作成されたユーザー (例: KRA_AdminV) を KRA の管理者グループに追加するには、KRA の管理者ニックネーム、ホスト名、およびポートを指定して kra-group-member-add コマンドを使用します。
    • 新しく作成されたユーザー (例: OCSP_AdminV) を OCSP の管理者グループに追加するには、OCSP の管理者ニックネーム、ホスト名、およびポートを指定して ocsp-group-member-add コマンドを使用します。

    TMS が該当する場合:

    • 新しく作成されたユーザー (例: TKS_AdminV) を TKS の管理者グループに追加するには、TK の管理者ニックネーム、ホスト名、ポートを指定して tks-group-member-add コマンドを使用します。
    • 新しく作成されたユーザー (例: TPS_AdminV) を TPS の管理者グループに追加するには、TPS の管理者ニックネーム、ホスト名、およびポートを指定して tps-group-member-add コマンドを使用します。
  3. ユーザーが Administrators グループに追加されたことを確認します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-group-member-find Administrators
    -----------------
    2 entries matched
    -----------------
     User: caadmin
    
     User: rsa_SubCA_AdminV
    ----------------------------
    Number of entries returned 2
    ----------------------------

    同様に

    • KRA の管理者グループのメンバーシップを確認するには、KRA のホスト名とポートを指定して kra-group-member-find コマンドを使用します。
    • OCSP の管理者グループのメンバーシップを確認するには、OCSP のホスト名とポートを指定して ocsp-group-member-find コマンドを使用します。

    TMS が該当する場合:

    • TKS の管理者グループのメンバーシップを確認するには、TKS のホスト名とポートを指定して tks-group-member-find コマンドを使用します。
    • TPS の管理者グループのメンバーシップを確認するには、TPS のホスト名とポートを指定して tps-group-member-find コマンドを使用します。
  4. rsa_SubCA_AdminV 証明書を pki ロールユーザーに追加します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-user-cert-add rsa_SubCA_AdminV --input /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AdminV_b64.crt
    
    -------------------------------------------------------------------------------------------------------------------------------------
    Added certificate "2;258264617;CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA;CN=rsa_SubCA_AdminV,UID=rsa_SubCA_AdminV"

    同様に

    • KRA および OCSP のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ kra-user-cert-addocsp-user-cert-add コマンドを使用します。

    TMS が該当する場合:

    • TKS および TPS のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ tks-user-cert-add コマンドと tps-user-cert-add コマンドを使用します。
  5. 証明書ファイル /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AdminV_pkcs7.crt をユーザー ( jgenie など) に送信します。その後、ファイルをユーザーの場所 /home/jgenie/certs_db/rsa_SubCA_AdminV_pkcs7.crt にコピーして、後のステップでインポートできます。
7.12.2.1.4. pki admin 証明書のクライアント nssdb へのインポート

この手順は、ブートストラップユーザー (この場合は root ユーザー) から新しく発行された証明書ファイル (例: /home/jgenie/certs_db/rsa_SubCA_AdminV_pkcs7.crt) を以前に受信した新しい pki 管理者ユーザー (例: jgenie) で実行します。

  1. 前のセクションで証明書を発行した pki 管理者として rhcs10.example.com にログインします (例: jgenie)
  2. rsa_SubCA_AdminV などの証明書をインストールします。

    Copy to Clipboard Toggle word wrap
    $ pki -d /home/jgenie/certs_db -c SECret.123 pkcs7-import "rsa_SubCA_AdminV" --pkcs7 /home/jgenie/certs_db/rsa_SubCA_AdminV_pkcs7.crt
    Copy to Clipboard Toggle word wrap
    $ certutil -d /home/jgenie/certs_db -L
    
    Certificate Nickname                Trust Attributes
                                        SSL,S/MIME,JAR/XPI
    
    . . . Output omitted . . .
    
    rsa_SubCA_AdminV                    u,u,u
  3. .p12 ファイルを作成して、ロールユーザー rsa_SubCA_AdminV 証明書をバックアップします (例: パスワード SECret.123 を使用)。

    Copy to Clipboard Toggle word wrap
    $ pki -d /home/jgenie/certs_db -c SECret.123 client-cert-show "rsa_SubCA_AdminV" --pkcs12 /home/jgenie/certs_db/rsa_SubCA_AdminV.p12 --pkcs12-password SECret.123
    注記

    コンソールクライアント認証用にファイルを 〜/.redhat-idm-console にインポートするなど、後で管理者テストに.p12 ファイルを使用できます。

検証:

  • 管理操作をテストします。

    Copy to Clipboard Toggle word wrap
    $ pki -v -d /home/jgenie/certs_db -c SECret.123 -n "rsa_SubCA_AdminV" -p 31443 ca-user-find

7.12.3. エージェントユーザー

  • agentV (このユーザーはテスト全体を通して有効な証明書を持っています)
  • agentR (このユーザーは呼び出された証明書を持っています)
  • agentE (このユーザーの 証明書 は期限が切れています)
  • agentTCA (このユーザーの証明書は 信頼された CA で署名されています)
  • agentUTCA (このユーザーの証明書は 信頼されていないCA で発行されています)

    注記

    この最後のものには、2 つ目の CA を設定する必要があります。

7.12.3.1. pki エージェントの証明書とロールの設定

次の手順例では、ユーザーエージェント jsmith の CMC 署名付きユーザー証明書 rsa_SubCA_AgentV を作成します。この CMC 要求は、次のセクションの SubCA ブートストラップ管理者証明書を使用して署名されます。

7.12.3.1.1. pki エージェントの CSR 生成

このセクションは、pki エージェント (jsmith など) によって実行され、このユーザーの CSR を作成することを目的としています。

  • 'Agent' (root 以外のユーザー、たとえば John Smith、jsmith) として rhcs10.example.com にログインします。

    1. クライアント nssdb がまだ存在しない場合は、作成します。

      Copy to Clipboard Toggle word wrap
      $ pki -d /home/jsmith/certs_db -c SECret.123 client-init
    2. PKCS10Client ツールを使用して、PKCS#10 証明書要求を生成します。

      注記

      サブシステムごとに、subjectDN と.req ファイル名を適宜変更します (例:OCSP_AgentV、KRA_AgentV など)。

      Copy to Clipboard Toggle word wrap
      $ PKCS10Client -d /home/jsmith/certs_db -p SECret.123 -n "cn=rsa_SubCA_AgentV, uid=rsa_SubCA_AgentV" -o /home/jsmith/certs_db/rsa_SubCA_AgentV.req
      
      PKCS10Client: Certificate request written into /home/jsmith/certs_db/rsa_SubCA_AgentV.req
      PKCS10Client: PKCS#10 request key id written into /home/jsmith/certs_db/rsa_SubCA_AgentV.req.keyId

      jsmith ユーザーは、証明書要求 (CSR) /home/jsmith/certs_db/rsa_SubCA_AgentV.req を、SubCA のブートストラップ管理証明書を保持しているユーザー (root ユーザーなど) に送信して、CMC に署名して要求を承認する必要があります。

7.12.3.1.2. pki エージェントユーザーの CSR の承認

このセクションでは、SubCA のブートストラップ管理者証明書を保持しているユーザー (root ユーザーなど) が実行する手順を説明します。CSR (前のセクションで jsmith が作成) を処理して pki エージェント証明書を発行する方法を説明します。

前提条件

  • root ユーザーとして RHCS マシンにログインしている。
  • 管理者/エージェント証明書 (この例では SubCA ブートストラップ証明書) が nssdb に存在する。

CMC を介した証明書の発行

ブートストラップ管理証明書/キーを保持しているユーザーは、jsmith から送信された CSR を次のように処理できるようになりました。

  1. jsmith から受信した CSR ファイル (rsa_SubCA_AgentV.req) を /root/.dogtag/pki_rsa_bootstrap/certs_db ディレクトリーに配置します。
  2. CMC 要求を生成します。

    1. CMCRequest 設定ファイルを作成します。以下に例を示します。

      Copy to Clipboard Toggle word wrap
      # vi /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AgentV.cfg
      Copy to Clipboard Toggle word wrap
      ### numRequests: Total number of PKCS10 requests or CRMF requests.
      numRequests=1
      
      ### input: full path for the PKCS10 request or CRMF request,
      ### The content must be in Base-64 encoded format.
      ### Multiple files are supported. They must be separated by a space.
      input=/root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AgentV.req
      
      ### output: full path for the CMC request in binary format
      output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AgentV_pkcs10.req
      
      ### tokenname: name of the token where the user signing cert can be found (default is internal)
      tokenname=internal
      
      ### nickname: nickname for the user cert that will be used to sign the CMC full request.
      nickname=PKI Bootstrap Administrator for RSA-SubCA
      
      ### dbdir: directory for cert8.db, key3.db and secmod.db
      dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db
      
      ### password: password for the cert8.db that stores the user signing cert and keys
      password=SECret.123
      
      ### format: request format, either pkcs10 or crmf
      format=pkcs10
      
      ### identityProofV2.enable: if true, then the request will contain this control. Otherwise, false.
      ### Note that if both identityProof and identityProofV2 are enabled,
      ### identityProofV2 takes precedence; Only one of them can be active at a time
      ### Supported hashAlg are:
      ### SHA-256, SHA-384, and SHA-512
      ### Supported macAlg are:
      ### SHA-256-HMAC, SHA-384-HMAC, and SHA-512-HMAC
      identityProofV2.enable=false
      identityProofV2.hashAlg=SHA-512
      identityProofV2.macAlg=SHA-256-HMAC
      request.privKeyId= _<private key id>_
    2. CMCRequest コマンドを使用してリクエストを生成します。

      Copy to Clipboard Toggle word wrap
      # CMCRequest /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AgentV.cfg
      
      cert/key prefix =
      path = /root/.dogtag/pki_rsa_bootstrap/certs_db
      CryptoManger initialized
      token internal logged in...
      got signerCert: PKI Bootstrap Administrator for RSA-SubCA
      createPKIData: begins
      k=0
      createPKIData:  format: pkcs10
      useSharedSecret is false...
      signData: begins:
      getPrivateKey: got signing cert
      signData:  got signer privKey
      createSignedData: begins
      getSigningAlgFromPrivate: begins.
      getSigningAlgFromPrivate: found signingKeyType=RSA
      getSigningAlgFromPrivate: using SignatureAlgorithm: RSASignatureWithSHA256Digest
      createSignedData: digest created for pkidata
      createSignedData: digest algorithm =RSASignatureWithSHA256Digest
      createSignedData: building cert chain
      signData: signed request generated.
      getCMCBlob: begins
      getCMCBlob: generating signed data
      
      The CMC enrollment request in base-64 encoded format:
      
      . . . Output omitted . . .
      
      The CMC enrollment request in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/cmc.rsa_SubCA_AgentV_pkcs10.req
  3. CMC 要求を送信します。

    1. HttpClient 設定ファイルを作成します。以下に例を示します。

      Copy to Clipboard Toggle word wrap
      # vi /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AgentV_signed.cfg
      Copy to Clipboard Toggle word wrap
      ### host: host name for the http server
      host=rhcs10.example.com
      
      ### port: port number
      port=31443
      
      ### secure: true for secure connection, false for nonsecure connection
      secure=true
      
      ### input: full path for the enrollment request, the content must be in binary format
      input=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AgentV_pkcs10.req
      
      ### output: full path for the response in binary format
      output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AgentV_pkcs10.resp
      
      ### tokenname: name of the token where the SSL client authentication cert can be found (default is internal)
      ### This parameter will be ignored if secure=false
      tokenname=internal
      
      ### dbdir: directory for cert8.db, key3.db and secmod.db
      ### This parameter will be ignored if secure=false
      dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db
      
      ### clientmode: true for client authentication, false for no client authentication
      ### This parameter will be ignored if secure=false
      clientmode=true
      
      ### password: password for cert8.db
      ### This parameter will be ignored if secure=false and clientauth=false
      password=SECret.123
      
      ### nickname: nickname for client certificate
      ### This parameter will be ignored if clientmode=false
      nickname=PKI Bootstrap Administrator for RSA-SubCA
      
      ### servlet: servlet name
      servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caFullCMCUserCert
    2. HttpClient コマンドを使用して要求を送信します。

      Copy to Clipboard Toggle word wrap
      # HttpClient /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AgentV_signed.cfg
      
      Total number of bytes read = 3455
      after SSLSocket created, thread token is NSS FIPS 140-2 User Private Key
      client cert is not null
      handshake happened
      writing to socket
      Total number of bytes read = 2592
      
      . . . Output omitted . . .
      
      The response in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AgentV_pkcs10.resp
  4. CMCResponse を使用して応答を処理します。

    重要

    "-v" オプションを指定して CMCResponse を実行すると、チェーン内の各証明書の PEM が Cert:0、Cert:1 などとして返されます。この出力では、すべての PEM の下に、チェーン内の各証明書も整った出力形式で表示されます。証明書は決まった順序で表示されないため、チェーン内での位置を確認するには、各 "Certificate" の下にある "Subject:" を確認する必要があります。対応する PEM が上と同じ位置に表示されます。

    Copy to Clipboard Toggle word wrap
    # CMCResponse -v -d /root/.dogtag/pki_rsa_bootstrap/certs_db -i /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AgentV_pkcs10.resp -o /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AgentV_pkcs7.crt
    
    Cert:0
    ...
    ===
    Cert:1
    ...
    ===
    Cert:2
    ...
    ===
    Certificates:
        Certificate:
           Data:
               Version:  v3
               Serial Number: 0xE1E0F54
    
    . . . Output omitted . . .
    
    Number of controls is 1
    Control #0: CMCStatusInfoV2
      OID: {1 3 6 1 5 5 7 7 25}
      BodyList: 1
      Status: SUCCESS
  5. エージェント証明書を /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AgentV_b64.crt にコピーします。

    Copy to Clipboard Toggle word wrap
    # pki -p 31443 ca-cert-export <rsa_SubCA_AgentV_serial_number> --output-file /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AgentV_b64.crt
7.12.3.1.3. pki エージェントユーザーの作成および、新しい証明書の関連付け
  1. rsa_SubCA_AgentV ユーザーを作成します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-user-add --fullName="rsa_SubCA_AgentV" rsa_SubCA_AgentV
    ---------------------
    Added user "rsa_SubCA_AgentV"
    ---------------------
     User ID: rsa_SubCA_AgentV
     Full name: rsa_SubCA_AgentV

    同様に

    • KRA の場合は、KRA の管理者ニックネーム、ホスト名、およびポートを指定して kra-user-add コマンドを使用し、新しいユーザー (KRA_AgentV など) を作成します。
    • OCSP の場合は、OCSP の管理者ニックネーム、ホスト名、およびポートを指定して ocsp-user-add コマンドを使用し、新しいユーザー (OCSP_AgentV など) を作成します。

    TMS が該当する場合:

    • TKS の場合、TKS の管理者ニックネーム、ホスト名、ポートを指定して tks-user-add コマンドを使用し、新しいユーザー (例: TKS_AgentV) を作成します。
    • TPS の場合、TPS の管理者ニックネーム、ホスト名、ポートを指定して tps-user-add コマンドを使用し、新しいユーザー (例: TPS_AgentV) を作成します。
  2. rsa_SubCA_AgentVCertificate Manager Agents グループに追加します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-group-member-add "Certificate Manager Agents" rsa_SubCA_AgentV
    -----------------------------
    Added group member "rsa_SubCA_AgentV"
    -----------------------------
     User: rsa_SubCA_AgentV

    同様に

    • 新しく作成されたユーザー (KRA_AgentV など) を KRA のエージェントグループに追加するには、KRA の管理者ニックネーム、ホスト名、ポート、およびグループ "Data Recovery Manager Agents" を指定して kra-group-member-add コマンドを使用します。
    • 新しく作成されたユーザー (OCSP_AgentV など) を OCSP のエージェントグループに追加するには、OCSP の管理者ニックネーム、ホスト名、ポート、およびグループ "Online Certificate Status Manager Agents" を指定して ocsp-group-member-add コマンドを使用します。

    TMS が該当する場合:

    • 新しく作成されたユーザー (例: TKS_AgentV) を TKS のエージェントグループに追加するには、TKS の管理者ニックネーム、ホスト名、ポート、およびグループ "Token Key Service Manager Agents" を指定して tks-group-member-add コマンドを使用します。
    • 新しく作成されたユーザー (例: TPS_AgentV) を TPS のエージェントグループに追加するには、TPS の管理者ニックネーム、ホスト名、ポート、およびグループ "TPS Agents" を指定して tps-group-member-add コマンドを使用します。
  3. ユーザー rsa_SubCA_AgentVCertificate Manager Agents グループに追加されたことを確認します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-group-member-find "Certificate Manager Agents"
    -----------------
    3 entries matched
    -----------------
     User: caadmin
    
     User: pkidbuser
    
     User: rsa_SubCA_AgentV
    ----------------------------
    Number of entries returned 3
    ----------------------------

    同様に

    • KRA のエージェントグループのメンバーシップを確認するには、KRA のホスト名、ポート、およびグループ "Data Recovery Manager Agents" を指定して kra-group-member-find コマンドを使用します。
    • OCSP のエージェントグループのメンバーシップを確認するには、OCSP のホスト名、ポート、およびグループ "Online Certificate Status Manager Agents" を指定して ocsp-group-member-find コマンドを使用します。

    TMS が該当する場合:

    • TKS のエージェントグループのメンバーシップを確認するには、KRA のホスト名とポート、およびグループ "Token Key Service Manager Agents" を指定して tks-group-member-find コマンドを使用します。
    • TPS のエージェントグループのメンバーシップを確認するには、TPS のホスト名とポート、およびグループ "TPS Agents" を指定して tps-group-member-find コマンドを使用します。
  4. rsa_SubCA_AgentV 証明書を pki ロールユーザーに追加します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-user-cert-add rsa_SubCA_AgentV --input /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AgentV_b64.crt
    
    -------------------------------------------------------------------------------------------------------------------------------------
    Added certificate "2;236851028;CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA;CN=rsa_SubCA_AgentV,UID=rsa_SubCA_AgentV"

    同様に

    • KRA および OCSP のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ kra-user-cert-addocsp-user-cert-add コマンドを使用します。

    TMS が該当する場合:

    • TKS および TPS のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ tks-user-cert-add コマンドと tps-user-cert-add コマンドを使用します。
  5. 証明書ファイル /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AgentV_pkcs7.crt をユーザー ( jsmith など) に送信します。次に、後のステップでインポートできるように、ファイルをユーザーの場所 /home/jsmith/certs_db/rsa_SubCA_AgentV_pkcs7.crt にコピーします。
7.12.3.1.4. pki エージェント証明書のクライアント nssdb へのインポート

この手順は、ブートストラップユーザー (この場合は root ユーザー) から新しく発行された証明書ファイル (例: /home/jsmith/certs_db/rsa_SubCA_AgentV_pkcs7.crt) を以前に受信した新しい pki エージェントユーザー (例: jsmith) で実行します。

  1. 'Agent' (root 以外のユーザー、たとえば jsmith) として rhcs10.example.com にログインします。
  2. rsa_SubCA_AgentV 証明書をインストールします。

    Copy to Clipboard Toggle word wrap
    $ pki -d /home/jsmith/certs_db -c SECret.123 pkcs7-import "rsa_SubCA_AgentV" --pkcs7 /home/jsmith/certs_db/rsa_SubCA_AgentV_pkcs7.crt
    Copy to Clipboard Toggle word wrap
    $ certutil -d /home/jsmith/certs_db -L
    
    Certificate Nickname              Trust Attributes
                                      SSL,S/MIME,JAR/XPI
    
    . . . Output omitted . . .
    
    rsa_SubCA_AgentV                  u,u,u
  3. .p12 ファイルを作成して、ロールユーザー rsa_SubCA_AgentV 証明書をバックアップします (例: パスワード SECret.123 を使用)。

    Copy to Clipboard Toggle word wrap
    $ pki -d /home/jsmith/certs_db -c SECret.123 client-cert-show "rsa_SubCA_AgentV" --pkcs12 /home/jsmith/certs_db/rsa_SubCA_AgentV.p12 --pkcs12-password SECret.123
7.12.3.1.5. TLS 相互認証用にブラウザーを初期化する

TLS 相互認証を行うために Firefox ブラウザーを初期化するために PKCS#12 ファイルをインポートするには、管理ガイドのセクション 2.4.1「ブラウザーの初期化」を参照してください。

7.12.4. 監査ユーザー

  • auditV (このユーザーはテスト全体を通して有効な証明書を持っています)

7.12.4.1. pki 監査人の証明書とロールの設定

次の手順例では、監査ユーザー aguru の CMC 署名付きユーザー証明書 rsa_SubCA_AuditV を作成します。この CMC 要求は、次のセクションの SubCA ブートストラップ管理者証明書を使用して署名されます。

7.12.4.1.1. pki 監査者向けの CSR 生成

この手順は、pki 監査者 (Astrid Guru、aguru など) が実行し、このユーザーの CSR を作成することを目的としています。

  • 'Auditor' (aguru などの非 root ユーザー) として rhcs10.example.com にログインします。

    1. クライアント nssdb がまだ存在しない場合は、作成します。

      Copy to Clipboard Toggle word wrap
      $ pki -d /home/aguru/certs_db -c SECret.123 client-init
    2. PKCS10Client ツールを使用して、PKCS#10 証明書要求を生成します。

      注記

      サブシステムごとに、subjectDN と .req ファイル名を適宜変更します (例:OCSP_AuditV、KRA_AuditV など)。

      Copy to Clipboard Toggle word wrap
      $ PKCS10Client -d /home/aguru/certs_db -p SECret.123 -n "cn=rsa_SubCA_AuditV, uid=rsa_SubCA_AuditV" -o /home/aguru/certs_db/rsa_SubCA_AuditV.req
      
      PKCS10Client: Certificate request written into /home/aguru/certs_db/rsa_SubCA_AuditV.req
      PKCS10Client: PKCS#10 request key id written into /home/aguru/certs_db/rsa_SubCA_AuditV.req.keyId

      aguru ユーザーは、証明書要求 (CSR) /home/aguru/certs_db/rsa_SubCA_AuditV.req を pki エージェントユーザーに送信して、CMC に署名し、要求を承認する必要があります。新しく指定されたサンプル pki エージェント jsmith またはブートストラップ証明書/キーを保持する root ユーザーを使用できます。この例では、root ユーザーのみを使用します。

7.12.4.1.2. pki 監査ユーザーの CSR 承認

このセクションでは、SubCA のブートストラップ管理者証明書を保持しているユーザー (root ユーザーなど) が実行する手順を説明します。CSR (前のセクションで aguru で作成) を処理して pki 監査者証明書を発行する方法を紹介します。

前提条件

  • root ユーザーとして RHCS マシンにログインしている。
  • 管理者/エージェント証明書 (この例では SubCA ブートストラップ証明書) が nssdb に存在する。

CMC を介した証明書の発行

  1. aguru から受信した CSR ファイル (rsa_SubCA_AuditV.req) を /root/.dogtag/pki_rsa_bootstrap/certs_db ディレクトリーに配置します。
  2. CMC 要求を生成します。

    1. CMCRequest 設定ファイルを作成します。以下に例を示します。

      Copy to Clipboard Toggle word wrap
      # vi /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AuditV.cfg
      Copy to Clipboard Toggle word wrap
      ### numRequests: Total number of PKCS10 requests or CRMF requests.
      numRequests=1
      
      ### input: full path for the PKCS10 request or CRMF request,
      ### The content must be in Base-64 encoded format.
      ### Multiple files are supported. They must be separated by a space.
      input=/root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AuditV.req
      
      ### output: full path for the CMC request in binary format
      output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AuditV_pkcs10.req
      
      ### tokenname: name of the token where the user signing cert can be found (default is internal)
      tokenname=internal
      
      ### nickname: nickname for the user cert that will be used to sign the CMC full request.
      nickname=PKI Bootstrap Administrator for RSA-SubCA
      
      ### dbdir: directory for cert8.db, key3.db and secmod.db
      dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db
      
      ### password: password for the cert8.db that stores the user signing cert and keys
      password=SECret.123
      
      ### format: request format, either pkcs10 or crmf
      format=pkcs10
      
      ### identityProofV2.enable: if true, then the request will contain this control. Otherwise, false.
      ### Note that if both identityProof and identityProofV2 are enabled,
      ### identityProofV2 takes precedence; Only one of them can be active at a time
      ### Supported hashAlg are:
      ### SHA-256, SHA-384, and SHA-512
      ### Supported macAlg are:
      ### SHA-256-HMAC, SHA-384-HMAC, and SHA-512-HMAC
      identityProofV2.enable=false
      identityProofV2.hashAlg=SHA-512
      identityProofV2.macAlg=SHA-256-HMAC
      request.privKeyId= _<private key id>_
    2. CMCRequest コマンドを使用してリクエストを生成します。

      Copy to Clipboard Toggle word wrap
      # CMCRequest /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AuditV.cfg
      
      cert/key prefix =
      path = /root/.dogtag/pki_rsa_bootstrap/certs_db
      CryptoManger initialized
      token internal logged in...
      got signerCert: PKI Bootstrap Administrator for RSA-SubCA
      createPKIData: begins
      k=0
      createPKIData:  format: pkcs10
      useSharedSecret is false...
      signData: begins:
      getPrivateKey: got signing cert
      signData:  got signer privKey
      createSignedData: begins
      getSigningAlgFromPrivate: begins.
      getSigningAlgFromPrivate: found signingKeyType=RSA
      getSigningAlgFromPrivate: using SignatureAlgorithm: RSASignatureWithSHA256Digest
      createSignedData: digest created for pkidata
      createSignedData: digest algorithm =RSASignatureWithSHA256Digest
      createSignedData: building cert chain
      signData: signed request generated.
      getCMCBlob: begins
      getCMCBlob: generating signed data
      
      The CMC enrollment request in base-64 encoded format:
      
      . . . Output omitted . . .
      
      The CMC enrollment request in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/cmc.rsa_SubCA_AuditV_pkcs10.req
  3. CMC 要求を送信します。

    1. HttpClient 設定ファイルを作成します。以下に例を示します。

      Copy to Clipboard Toggle word wrap
      # vi /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AuditV_signed.cfg
      Copy to Clipboard Toggle word wrap
      ### host: host name for the http server
      host=rhcs10.example.com
      
      ### port: port number
      port=31443
      
      ### secure: true for secure connection, false for nonsecure connection
      secure=true
      
      ### input: full path for the enrollment request, the content must be in binary format
      input=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AuditV_pkcs10.req
      
      ### output: full path for the response in binary format
      output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AuditV_pkcs10.resp
      
      ### tokenname: name of the token where the SSL client authentication cert can be found (default is internal)
      ### This parameter will be ignored if secure=false
      tokenname=internal
      
      ### dbdir: directory for cert8.db, key3.db and secmod.db
      ### This parameter will be ignored if secure=false
      dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db
      
      ### clientmode: true for client authentication, false for no client authentication
      ### This parameter will be ignored if secure=false
      clientmode=true
      
      ### password: password for cert8.db
      ### This parameter will be ignored if secure=false and clientauth=false
      password=SECret.123
      
      ### nickname: nickname for client certificate
      ### This parameter will be ignored if clientmode=false
      nickname=PKI Bootstrap Administrator for RSA-SubCA
      
      ### servlet: servlet name
      servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caFullCMCUserCert
    2. HttpClient コマンドを使用して要求を送信します。

      Copy to Clipboard Toggle word wrap
      # HttpClient /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AuditV_signed.cfg
      
      Total number of bytes read = 3459
      after SSLSocket created, thread token is NSS FIPS 140-2 User Private Key
      client cert is not null
      handshake happened
      writing to socket
      Total number of bytes read = 2596
      
      . . . Output omitted . . .
      
      The response in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AuditV_pkcs10.resp
  4. CMCResponse を使用して応答を処理し、チェーン内のすべての証明書を PEM 形式で個別に表示します。

    重要

    "-v" オプションを指定して CMCResponse を実行すると、チェーン内の各証明書の PEM が Cert:0、Cert:1 などとして返されます。この出力では、すべての PEM の下に、チェーン内の各証明書も整った出力形式で表示されます。証明書は決まった順序で表示されないため、チェーン内での位置を確認するには、各 "Certificate" の下にある "Subject:" を確認する必要があります。対応する PEM が上と同じ位置に表示されます。

    Copy to Clipboard Toggle word wrap
    # CMCResponse -v -d /root/.dogtag/pki_rsa_bootstrap/certs_db -i /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.rsa_SubCA_AuditV_pkcs10.resp -o /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AuditV_pkcs7.crt
    
    Certificates:
        Certificate:
           Data:
               Version:  v3
               Serial Number: 0xD107903
               Signature Algorithm: SHA512withRSA - 1.2.840.113549.1.1.13
               Issuer: CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA
               Validity:
                   Not Before: Sunday, January 7, 2018 1:12:52 PM EST America/New_York
                   Not  After: Friday, July 6, 2018 1:12:52 PM EDT America/New_York
               Subject: CN=rsa_SubCA_AuditV,UID=rsa_SubCA_AuditV
    
    . . . Output omitted . . .
    
    Number of controls is 1
    Control #0: CMCStatusInfoV2
      OID: {1 3 6 1 5 5 7 7 25}
      BodyList: 1
      Status: SUCCESS
  5. 監査証明書を /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AuditV_b64.crt にコピーします。

    Copy to Clipboard Toggle word wrap
    # pki -p 31443 ca-cert-export <rsa_SubCA_AuditV_serial_number> --output-file /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AuditV_b64.crt
7.12.4.1.3. pki 監査ユーザーを作成し、新しい証明書を関連付けます

この手順は、既存の pki admin ユーザー (この場合は、SubCA ブートストラップ証明書を保持している root ユーザー) によって実行されます。

  1. rsa_SubCA_AuditV ユーザーを作成します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-user-add --fullName="rsa_SubCA_AuditV" rsa_SubCA_AuditV
    ---------------------
    Added user "rsa_SubCA_AuditV"
    ---------------------
     User ID: rsa_SubCA_AuditV
     Full name: rsa_SubCA_AuditV

    同様に

    • KRA の場合には、kra-user-add コマンドを KRA の管理者ニックネーム、ホスト名、およびポートとともに使用して、新しいユーザーを作成します (例: KRA_AuditV)。
    • OCSP の場合、OCSP の管理ニックネーム、ホスト名、およびポートを指定して ocsp-user-add コマンドを使用し、新しいユーザーを作成します (例: OCSP_AuditV)。

    TMS が該当する場合:

    • TKS の場合、TKS の管理者ニックネーム、ホスト名、ポートを指定して tks-user-add コマンドを使用し、新しいユーザー (例: TKS_AuditV) を作成します。
    • TPS の場合、TPS の管理者ニックネーム、ホスト名、ポートを指定して tps-user-add コマンドを使用し、新しいユーザー (例: TPS_AuditV) を作成します。
  2. Auditors グループに rsa_SubCA_AuditV を追加します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-group-member-add "Auditors" rsa_SubCA_AuditV
    -----------------------------
    Added group member "rsa_SubCA_AuditV"
    -----------------------------
     User: rsa_SubCA_AuditV

    同様に

    • 新しく作成されたユーザー (例: KRA_AuditV) を KRA の監査グループに追加するには、KRA の管理者ニックネーム、ホスト名、およびポートを指定して kra-group-member-add コマンドを使用します。
    • 新しく作成されたユーザー (例: OCSP_AuditV) を OCSP の監査グループに追加するには、OCSP の管理者ニックネーム、ホスト名、およびポートを指定して ocsp-group-member-add コマンドを使用します。

    TMS が該当する場合:

    • 新しく作成されたユーザー (例: TKS_AuditV) を TKS の監査グループに追加するには、TKS の管理者ニックネーム、ホスト名、ポートを指定して tks-group-member-add コマンドを使用します。
    • 新しく作成されたユーザー (例: TPS_AuditV) を TPS の監査グループに追加するには、TPS の管理者ニックネーム、ホスト名、およびポートを指定して tps-group-member-add コマンドを使用します。
  3. ユーザー rsa_SubCA_AuditVAuditors グループに追加されたことを確認します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-group-member-find "Auditors"
    -----------------
    1 entries matched
    -----------------
     User: rsa_SubCA_AuditV
    ----------------------------
    Number of entries returned 1
    ----------------------------

    同様に

    • KRA の監査グループのメンバーシップを確認するには、KRA のホスト名とポートを指定して kra-group-member-find コマンドを使用します。
    • OCSP の監査グループのメンバーシップを確認するには、OCSP のホスト名とポートを指定して ocsp-group-member-find コマンドを使用します。

    TMS が該当する場合:

    • TKS の監査グループ内のメンバーシップを確認するには、TKS のホスト名とポートを指定して tks-group-member-find コマンドを使用します。
    • TPS の監査グループ内のメンバーシップを確認するには、TPS のホスト名とポートを指定して tps-group-member-find コマンドを使用します。
  4. rsa_SubCA_AuditV 証明書を pki ロールユーザーに追加します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -n "PKI Bootstrap Administrator for RSA-SubCA" -c SECret.123 -h "rhcs10.example.com" -p 31443 ca-user-cert-add rsa_SubCA_AuditV --input /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AuditV_b64.crt
    
    -------------------------------------------------------------------------------------------------------------------------------------
    Added certificate "2;236851028;CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA;CN=rsa_SubCA_AuditV,UID=rsa_SubCA_AuditV"

    同様に

    • KRA および OCSP のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ kra-user-cert-addocsp-user-cert-add コマンドを使用します。

    TMS が該当する場合:

    • TKS および TPS のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ tks-user-cert-add コマンドと tps-user-cert-add コマンドを使用します。
  5. 証明書ファイル /root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AuditV_pkcs7.crt をユーザー (例: aguru) に送信します。次に、後のステップでインポートできるように、ファイルをユーザーの場所 /home/aguru/certs_db/rsa_SubCA_AuditV_pkcs7.crt にコピーします。
7.12.4.1.4. pki 監査証明書のクライアント nssdb へのインポート

このセクションは、ブートストラップユーザー (この場合は root ユーザー) から新しく発行された証明書ファイル (例: /home/aguru/certs_db/rsa_SubCA_AuditV_pkcs7.crt) を受け取った新しい pki 監査ユーザー (例: aguru) で実行します。

  1. 'Auditor' (aguru などの非 root ユーザー) として rhcs10.example.com にログインします。
  2. rsa_SubCA_AuditV 証明書をインストールします。

    Copy to Clipboard Toggle word wrap
    $ pki -d /home/aguru/certs_db -c SECret.123 pkcs7-import "rsa_SubCA_AuditV" --pkcs7 /home/aguru/certs_db/rsa_SubCA_AuditV_pkcs7.crt
    Copy to Clipboard Toggle word wrap
    $ certutil -d /home/aguru/certs_db -L
    
    Certificate Nickname              Trust Attributes
                                      SSL,S/MIME,JAR/XPI
    
    . . . Output omitted . . .
    
    rsa_SubCA_AuditV                  u,u,u
  3. .p12 ファイルを作成して、ロールユーザー rsa_SubCA_AuditV 証明書をバックアップします (例: パスワード SECret.123 を使用)。

    Copy to Clipboard Toggle word wrap
    $ pki -d /home/aguru/certs_db -c SECret.123 client-cert-show "rsa_SubCA_AuditV" --pkcs12 /home/aguru/certs_db/rsa_SubCA_AuditV.p12 --pkcs12-password SECret.123

7.12.5. TPS Operator

TPS Operator のプロセスは監査人のプロセスと同様です。

7.12.6. 認証データベースからのブートストラップ管理ユーザーの削除 (オプション)

注記

各 RHCS サブシステムについて、少なくとも管理者ユーザーが 1 つ作成されており、管理者機能が実行テストに成功している場合にのみ、このセクションの手順に実行してください。

  1. 認証 nssdb に証明書をリストして、SubCA、KRA、および OCSP にインストールされているブートストラップ管理者証明書を確認します。以下に例を示します。

    Copy to Clipboard Toggle word wrap
    # certutil -d /root/.dogtag/pki_rsa_bootstrap/certs_db -L
    
    Certificate Nickname                             Trust Attributes
                                                     SSL,S/MIME,JAR/XPI
    
    PKI Bootstrap Administrator for RSA-RootCA       u,u,u
    PKI Bootstrap Administrator for RSA-SubCA        u,u,u
    PKI Bootstrap Administrator for RSA-OCSP-rootca  u,u,u
    PKI Bootstrap Administrator for RSA-OCSP-subca   u,u,u
    PKI Bootstrap Administrator for RSA-KRA          u,u,u
  2. SubCA、OCSP、および KRA ブートストラップ管理者ユーザー証明書を削除します。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-SubCA"
    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-OCSP-rootca"
    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-OCSP-subca"
    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-KRA"
  3. オプション: TMS が該当する場合は、同じ方法で TKS および TPS ブートストラップ管理者ユーザーを削除できます。

    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-TKS"
    Copy to Clipboard Toggle word wrap
    # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-TPS"

マルチロールサポートの無効化

ブートストラップユーザーには複数のロール (管理者、エージェント、監査人) が付与されています。ブートストラップユーザーを単一ロールの特権ユーザーに置き換えたため、「マルチロールサポートの無効化」 の手順に従ってマルチロール機能を安全に無効化できます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.