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 ユーザーとグループの作成」 で作成されたユーザー jgenie、jsmith、および aguru) を設定する方法だけを説明しています。これらの例では、証明書要求 (CSR) は、SubCA のブートストラップ管理者証明書を使用して承認されます。
7.12.1. 前提条件
証明書を発行するための推奨手順を実行する前に、SubCA ブートストラップ管理者証明書/キーがタスクを実行する準備ができていることを確認してください。
- root ユーザーとして rhcs10.example.com にログインします。
nssdb に管理者/エージェント証明書 (この場合は SubCA のブートストラップ管理者証明書) が存在することを確認します (これは 「ブートストラップ以外のエージェントユーザー証明書の発行」 で設定しました)。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -d /root/.dogtag/pki_rsa_bootstrap/certs_db -L
# 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 を作成することを目的としています。
- rhcs10.example.com に 'Administrator' (root 以外のユーザー) としてログインします (この例では jgenie)。
クライアント nssdb がまだ存在しない場合は、作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /home/jgenie/certs_db -c SECret.123 client-init
$ pki -d /home/jgenie/certs_db -c SECret.123 client-init
PKCS10Client
ツールを使用して、PKCS#10 証明書要求を生成します。注記サブシステムごとに、subjectDN と.req ファイル名を適宜変更します (例:OCSP_AdminV、KRA_AdminV など)。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 -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 を次のように処理できるようになります。
-
jgenie から受信した CSR ファイル (rsa_SubCA_AdminV.req) を
/root/.dogtag/pki_rsa_bootstrap/certs_db
ディレクトリーに配置します。 CMC 要求を生成します。
CMCRequest
設定ファイルを作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AdminV.cfg
# vi /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AdminV.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ### 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>_
### 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 Copied! Toggle word wrap Toggle overflow PKCS10Client: PKCS#10 request key id written into /home/jgenie/certs_db/rsa_SubCA_AdminV.req.keyId
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 で簡単に実行できます。CMCRequest
コマンドを使用してリクエストを生成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow CMCRequest /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AdminV.cfg
# 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
CMC 要求を送信します。
HttpClient
設定ファイルを作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AdminV_signed.cfg
# vi /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AdminV_signed.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ### 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
### 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
HttpClient
コマンドを使用して要求を送信します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow HttpClient /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AdminV_signed.cfg
# 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
CMCResponse
を使用して応答を処理し、チェーン内のすべての証明書を PEM 形式で個別に表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
エージェント証明書を
/root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AdminV_b64.crt
にコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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 管理者ユーザーを作成し、新しい証明書をこのユーザーに関連付けるには、次の手順に従います。
ユーザーを作成します。この例では rsa_SubCA_AdminV :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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) を作成します。
-
KRA の場合は、KRA の管理者ニックネーム、ホスト名、およびポートを指定して
新しいユーザーを Administrators グループに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
コマンドを使用します。
-
新しく作成されたユーザー (例: KRA_AdminV) を KRA の管理者グループに追加するには、KRA の管理者ニックネーム、ホスト名、およびポートを指定して
ユーザーが Administrators グループに追加されたことを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
コマンドを使用します。
-
KRA の管理者グループのメンバーシップを確認するには、KRA のホスト名とポートを指定して
rsa_SubCA_AdminV 証明書を pki ロールユーザーに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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-add
とocsp-user-cert-add
コマンドを使用します。
TMS が該当する場合:
-
TKS および TPS のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ
tks-user-cert-add
コマンドとtps-user-cert-add
コマンドを使用します。
-
KRA および OCSP のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ
-
証明書ファイル
/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) で実行します。
- 前のセクションで証明書を発行した pki 管理者として rhcs10.example.com にログインします (例: jgenie)。
rsa_SubCA_AdminV などの証明書をインストールします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /home/jgenie/certs_db -c SECret.123 pkcs7-import "rsa_SubCA_AdminV" --pkcs7 /home/jgenie/certs_db/rsa_SubCA_AdminV_pkcs7.crt
$ 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 Copied! Toggle word wrap Toggle overflow certutil -d /home/jgenie/certs_db -L
$ certutil -d /home/jgenie/certs_db -L Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI . . . Output omitted . . . rsa_SubCA_AdminV u,u,u
.p12 ファイルを作成して、ロールユーザー rsa_SubCA_AdminV 証明書をバックアップします (例: パスワード SECret.123 を使用)。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ 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 Copied! Toggle word wrap Toggle overflow pki -v -d /home/jgenie/certs_db -c SECret.123 -n "rsa_SubCA_AdminV" -p 31443 ca-user-find
$ 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 にログインします。
クライアント nssdb がまだ存在しない場合は、作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /home/jsmith/certs_db -c SECret.123 client-init
$ pki -d /home/jsmith/certs_db -c SECret.123 client-init
PKCS10Client
ツールを使用して、PKCS#10 証明書要求を生成します。注記サブシステムごとに、subjectDN と.req ファイル名を適宜変更します (例:OCSP_AgentV、KRA_AgentV など)。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 -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 を次のように処理できるようになりました。
-
jsmith から受信した CSR ファイル (rsa_SubCA_AgentV.req) を
/root/.dogtag/pki_rsa_bootstrap/certs_db
ディレクトリーに配置します。 CMC 要求を生成します。
CMCRequest
設定ファイルを作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AgentV.cfg
# vi /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AgentV.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ### 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>_
### 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>_
CMCRequest
コマンドを使用してリクエストを生成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow CMCRequest /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AgentV.cfg
# 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
CMC 要求を送信します。
HttpClient
設定ファイルを作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AgentV_signed.cfg
# vi /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AgentV_signed.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ### 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
### 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
HttpClient
コマンドを使用して要求を送信します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow HttpClient /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AgentV_signed.cfg
# 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
CMCResponse
を使用して応答を処理します。重要"-v" オプションを指定して CMCResponse を実行すると、チェーン内の各証明書の PEM が Cert:0、Cert:1 などとして返されます。この出力では、すべての PEM の下に、チェーン内の各証明書も整った出力形式で表示されます。証明書は決まった順序で表示されないため、チェーン内での位置を確認するには、各 "Certificate" の下にある "Subject:" を確認する必要があります。対応する PEM が上と同じ位置に表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
エージェント証明書を
/root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AgentV_b64.crt
にコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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 エージェントユーザーの作成および、新しい証明書の関連付け
rsa_SubCA_AgentV ユーザーを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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) を作成します。
-
KRA の場合は、KRA の管理者ニックネーム、ホスト名、およびポートを指定して
rsa_SubCA_AgentV を Certificate Manager Agents グループに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
コマンドを使用します。
-
新しく作成されたユーザー (KRA_AgentV など) を KRA のエージェントグループに追加するには、KRA の管理者ニックネーム、ホスト名、ポート、およびグループ "Data Recovery Manager Agents" を指定して
ユーザー rsa_SubCA_AgentV が Certificate Manager Agents グループに追加されたことを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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"
# 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
コマンドを使用します。
-
KRA のエージェントグループのメンバーシップを確認するには、KRA のホスト名、ポート、およびグループ "Data Recovery Manager Agents" を指定して
rsa_SubCA_AgentV 証明書を pki ロールユーザーに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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-add
とocsp-user-cert-add
コマンドを使用します。
TMS が該当する場合:
-
TKS および TPS のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ
tks-user-cert-add
コマンドとtps-user-cert-add
コマンドを使用します。
-
KRA および OCSP のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ
-
証明書ファイル
/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) で実行します。
- 'Agent' (root 以外のユーザー、たとえば jsmith) として rhcs10.example.com にログインします。
rsa_SubCA_AgentV 証明書をインストールします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /home/jsmith/certs_db -c SECret.123 pkcs7-import "rsa_SubCA_AgentV" --pkcs7 /home/jsmith/certs_db/rsa_SubCA_AgentV_pkcs7.crt
$ 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 Copied! Toggle word wrap Toggle overflow certutil -d /home/jsmith/certs_db -L
$ certutil -d /home/jsmith/certs_db -L Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI . . . Output omitted . . . rsa_SubCA_AgentV u,u,u
.p12 ファイルを作成して、ロールユーザー rsa_SubCA_AgentV 証明書をバックアップします (例: パスワード SECret.123 を使用)。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ 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 にログインします。
クライアント nssdb がまだ存在しない場合は、作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /home/aguru/certs_db -c SECret.123 client-init
$ pki -d /home/aguru/certs_db -c SECret.123 client-init
PKCS10Client
ツールを使用して、PKCS#10 証明書要求を生成します。注記サブシステムごとに、subjectDN と .req ファイル名を適宜変更します (例:OCSP_AuditV、KRA_AuditV など)。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 -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 を介した証明書の発行
-
aguru から受信した CSR ファイル (
rsa_SubCA_AuditV.req
) を/root/.dogtag/pki_rsa_bootstrap/certs_db
ディレクトリーに配置します。 CMC 要求を生成します。
CMCRequest
設定ファイルを作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AuditV.cfg
# vi /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AuditV.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ### 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>_
### 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>_
CMCRequest
コマンドを使用してリクエストを生成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow CMCRequest /root/.dogtag/pki_rsa_bootstrap/certs_db/cmcRequest_p10_rsa_SubCA_AuditV.cfg
# 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
CMC 要求を送信します。
HttpClient
設定ファイルを作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AuditV_signed.cfg
# vi /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AuditV_signed.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ### 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
### 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
HttpClient
コマンドを使用して要求を送信します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow HttpClient /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_rsa_SubCA_AuditV_signed.cfg
# 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
CMCResponse
を使用して応答を処理し、チェーン内のすべての証明書を PEM 形式で個別に表示します。重要"-v" オプションを指定して CMCResponse を実行すると、チェーン内の各証明書の PEM が Cert:0、Cert:1 などとして返されます。この出力では、すべての PEM の下に、チェーン内の各証明書も整った出力形式で表示されます。証明書は決まった順序で表示されないため、チェーン内での位置を確認するには、各 "Certificate" の下にある "Subject:" を確認する必要があります。対応する PEM が上と同じ位置に表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
監査証明書を
/root/.dogtag/pki_rsa_bootstrap/certs_db/rsa_SubCA_AuditV_b64.crt
にコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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 ユーザー) によって実行されます。
rsa_SubCA_AuditV ユーザーを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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) を作成します。
-
KRA の場合には、
Auditors グループに rsa_SubCA_AuditV を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
コマンドを使用します。
-
新しく作成されたユーザー (例: KRA_AuditV) を KRA の監査グループに追加するには、KRA の管理者ニックネーム、ホスト名、およびポートを指定して
ユーザー rsa_SubCA_AuditV が Auditors グループに追加されたことを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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"
# 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
コマンドを使用します。
-
KRA の監査グループのメンバーシップを確認するには、KRA のホスト名とポートを指定して
rsa_SubCA_AuditV 証明書を pki ロールユーザーに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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-add
とocsp-user-cert-add
コマンドを使用します。
TMS が該当する場合:
-
TKS および TPS のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ
tks-user-cert-add
コマンドとtps-user-cert-add
コマンドを使用します。
-
KRA および OCSP のユーザーに証明書を追加するには、対応するサブシステムのホスト名とポートを指定して、それぞれ
-
証明書ファイル
/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) で実行します。
- 'Auditor' (aguru などの非 root ユーザー) として rhcs10.example.com にログインします。
rsa_SubCA_AuditV 証明書をインストールします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /home/aguru/certs_db -c SECret.123 pkcs7-import "rsa_SubCA_AuditV" --pkcs7 /home/aguru/certs_db/rsa_SubCA_AuditV_pkcs7.crt
$ 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 Copied! Toggle word wrap Toggle overflow certutil -d /home/aguru/certs_db -L
$ certutil -d /home/aguru/certs_db -L Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI . . . Output omitted . . . rsa_SubCA_AuditV u,u,u
.p12 ファイルを作成して、ロールユーザー rsa_SubCA_AuditV 証明書をバックアップします (例: パスワード SECret.123 を使用)。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ 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 つ作成されており、管理者機能が実行テストに成功している場合にのみ、このセクションの手順に実行してください。
認証 nssdb に証明書をリストして、SubCA、KRA、および OCSP にインストールされているブートストラップ管理者証明書を確認します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -d /root/.dogtag/pki_rsa_bootstrap/certs_db -L
# 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
SubCA、OCSP、および KRA ブートストラップ管理者ユーザー証明書を削除します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-SubCA"
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-SubCA"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-OCSP-rootca"
# 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 Copied! Toggle word wrap Toggle overflow pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-OCSP-subca"
# 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 Copied! Toggle word wrap Toggle overflow pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-KRA"
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-KRA"
オプション: TMS が該当する場合は、同じ方法で TKS および TPS ブートストラップ管理者ユーザーを削除できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-TKS"
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-TKS"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-TPS"
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-del "PKI Bootstrap Administrator for RSA-TPS"
マルチロールサポートの無効化
ブートストラップユーザーには複数のロール (管理者、エージェント、監査人) が付与されています。ブートストラップユーザーを単一ロールの特権ユーザーに置き換えたため、「マルチロールサポートの無効化」 の手順に従ってマルチロール機能を安全に無効化できます。