16.3. CA、OCSP、KRA、TKS のユーザーおよびグループの管理
ユーザーが実行できる操作の多くは、ユーザーが属するグループによって決定されます。たとえば、CA のエージェントは証明書とプロファイルを管理し、管理者は CA サーバーの設定を管理します。
4 つのサブシステム (CA、OCSP、KRA、および TKS) は、Java 管理コンソールを使用してグループとユーザーを管理します。TPS には Web ベースの管理サービスがあり、ユーザーおよびグループは Web サービスページで設定されます。
16.3.1. グループの管理 リンクのコピーリンクがクリップボードにコピーされました!
16.3.1.1. 新規グループの作成 リンクのコピーリンクがクリップボードにコピーされました!
管理コンソールにログインします。
pkiconsole https://server.example.com:8443/subsystem_type
pkiconsole https://server.example.com:8443/subsystem_type
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記pkiconsole
は非推奨になりました。- 左側のナビゲーションメニューから Users and Groups を選択します。
- Groups タブを選択します。
内部データベースにすでに存在するユーザーのみを追加することが可能です。
- ACL を編集して、グループの権限を付与します。詳細は、「ACL の編集」 を参照してください。グループの ACL に ACI が追加されていない場合、グループには Certificate System の一部にアクセスパーミッションがありません。
16.3.1.2. グループのメンバーの変更 リンクのコピーリンクがクリップボードにコピーされました!
すべてのグループからメンバーを追加または削除できます。管理者のグループには、最低でもユーザーエントリーが 1 つ必要です。
- 管理コンソールにログインします。
- 左側のナビゲーションツリーから Users and Groups を選択します。
- Groups タブをクリックします。
- 名前のリストからグループを選択し、 をクリックします。
適切な変更を加えます。
- グループの説明を変更するには、Group description フィールドに新しい説明を入力します。
- グループからユーザーを削除するには、ユーザーを選択し、 をクリックします。
- ユーザーを追加するには、 をクリックします。ダイアログボックスから追加するユーザーを選択し、 をクリックします。
16.3.2. ユーザーの管理 (管理者、エージェント、および監査者) リンクのコピーリンクがクリップボードにコピーされました!
各サブシステムのユーザーは別々に維持されます。あるサブシステムの管理者であるからといって、その人が別のサブシステムに対する権限 (またはユーザーエントリー) を持っているとは限りません。ユーザーを設定して、ユーザー証明書を使用してサブシステムのエージェント、管理者、または監査担当者として信頼できます。
16.3.2.1. ユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Certificate System をインストールしたら、セットアップ時に作成したユーザーのみが存在します。このセクションでは、追加のユーザーを作成する方法を説明します。
セキュリティーと監査上の理由から、Certificate System のユーザーと管理者用に個別のアカウントを作成します。
16.3.2.1.1. コマンドラインでのユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインでユーザーを作成するには、以下を実行します。
ユーザーアカウントを追加します。たとえば、
example
ユーザーを CA に追加するには、以下を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
caadmin
ユーザーを使用して新規アカウントを追加します。必要に応じて、グループにユーザーを追加します。たとえば、
example
ユーザーをCertificate Manager Agents
グループに追加するには、次のコマンドを実行します。pki -d ~/.dogtag/pki-instance_name/ -p password -n "caadmin" \ user-add-membership example Certificate Manager Agents
# pki -d ~/.dogtag/pki-instance_name/ -p password -n "caadmin" \ user-add-membership example Certificate Manager Agents
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書要求を作成します。
Certificate System 環境に Key Recovery Authority (KRA) が存在する場合は、以下を行います。
CRMFPopClient -d /home/example-user/certs_db -p password -n "CN=user_name" -q POP_SUCCESS -b kra.transport -w "AES KeyWrap/Wrapped" -v -o ~/user_name.req -oaep
# CRMFPopClient -d /home/example-user/certs_db -p password -n "CN=user_name" -q POP_SUCCESS -b kra.transport -w "AES KeyWrap/Wrapped" -v -o ~/user_name.req -oaep
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、証明書署名要求 (CSR) を
~/user_name.req
ファイルにCRMF
形式で保存します。注記サーバーが設定されている場合は
-oaep
を使用します。最新の HSM が AES/CBC/PKCS5Padding よりも AES KeyWrap/WrapWrapped を優先する場合は、AES KeyWrap/WrapWrapped を使用します。Certificate System 環境に Key Recovery Authority (KRA) が存在しない場合は、以下を行います。
NSS データベースディレクトリーを作成します。
export pkiinstance=ca1 echo ${pkiinstance} export agentdir=~/.dogtag/${pkiinstance}/agent1.dir echo ${agentdir} pki -d ${agentdir}/ -C ${somepwdfile} client-init
# export pkiinstance=ca1 # echo ${pkiinstance} # export agentdir=~/.dogtag/${pkiinstance}/agent1.dir # echo ${agentdir} # pki -d ${agentdir}/ -C ${somepwdfile} client-init
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSR を
-o
オプションで指定された PKCS-#10 フォーマットファイルに保存し、初期化された NSS データベースディレクトリーへのパスの場合は-d
、パスワードファイルの場合は-P
オプション、パスワードの場合は-p
、サブジェクト DN の場合は-n
を保存します。PKCS10Client -d ${agentdir}/ -P ${somepwdfile} -n "cn=agent1,uid=agent1" -o ${agentdir}/agent1.csr
# PKCS10Client -d ${agentdir}/ -P ${somepwdfile} -n "cn=agent1,uid=agent1" -o ${agentdir}/agent1.csr PKCS10Client: Certificate request written into /.dogtag/ca1/agent1.dir/agent1.csr PKCS10Client: PKCS#10 request key id written into /.dogtag/ca1/agent1.dir/agent1.csr.keyId
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
登録リクエストを作成します。
~/cmc.role`crmf.cfg
ファイルを以下の内容で作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 直前の手順で使用した環境および CSR 形式に基づいて、パラメーターを設定します。
以前に作成した設定ファイルを
CMCRequest
ユーティリティーに渡して、CMC 要求を作成します。CMCRequest ~/cmc.role_crmf.cfg
# CMCRequest ~/cmc.role_crmf.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
CMS (CMC) 要求で Certificate Management を送信します。
~/HttpClient`role_crmf.cfg
ファイルを以下の内容で作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 環境に応じてパラメーターを設定します。
CA に要求を送信します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 結果を確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
必要に応じて、証明書をユーザー自身の
~/.dogtag/pki-instance_name/
データベースにインポートするには、次のコマンドを実行します。certutil -d ~/.dogtag/pki-instance_name/ -A -t "u,u,u" -n "user_name certificate" -i ~/cmc.role_crmf.resp
# certutil -d ~/.dogtag/pki-instance_name/ -A -t "u,u,u" -n "user_name certificate" -i ~/cmc.role_crmf.resp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーレコードに証明書を追加します。
ユーザーのシリアル番号を検出できる証明書をリスト表示します。たとえば、証明書のサブジェクトに
example
ユーザー名が含まれる証明書をリスト表示するには、次のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の手順では、証明書のシリアル番号が必要です。
シリアル番号を使用して、証明書リポジトリーから Certificate System データベースのユーザーアカウントに証明書を追加します。たとえば、CA ユーザーの場合は以下を実行します。
pki -c password -n caadmin ca-user-cert-add example --serial 0x6
pki -c password -n caadmin ca-user-cert-add example --serial 0x6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
16.3.2.1.2. コンソールを使用したユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
PKI コンソールを使用してユーザーを作成するには、次のコマンドを実行します。
管理コンソールにログインします。
pkiconsole https://server.example.com:8443/subsystem_type
pkiconsole https://server.example.com:8443/subsystem_type
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記pkiconsole
は非推奨になりました。- Configuration タブで、Users and Groups を選択します。 をクリックします。
Edit User Information ダイアログに情報を入力します。
情報のほとんどは、ユーザー名、メールアドレス、パスワードなどの標準のユーザー情報です。このウィンドウには、User State と呼ばれるフィールドも含まれ、このフィールドにはユーザーに関する追加情報を追加するために使用される文字列を含めることができます。最も基本的なことですが、このフィールドにはユーザーがアクティブかどうかが表示されます。
- ユーザーが属するグループを選択します。ユーザーのグループメンバーシップにより、ユーザーが持つ特権が決まります。エージェント、管理者、および監査人を適切なサブシステムグループに割り当てます。
ユーザーの証明書を保存します。
- CA エンドエンティティーサービスページでユーザー証明書を要求します。
- ユーザープロファイルに対して自動登録が設定されていない場合は、証明書要求を承認します。
- 通知メールで提供される URL を使用して証明書を取得し、base-64 でエンコードされた証明書をローカルファイルまたはクリップボードにコピーします。
- 新しいユーザーエントリーを選択し、 をクリックします。
- をクリックし、base-64 でエンコードされた証明書に貼り付けます。
16.3.2.2. Certificate System ユーザー証明書の変更 リンクのコピーリンクがクリップボードにコピーされました!
- 管理コンソールにログインします。
- Users and Groups を選択します。
- ユーザー ID のリストから編集するユーザーを選択し、 をクリックします。
- をクリックして、新しい証明書を追加します。
-
Import Certificate ウィンドウで、テキストエリアに新しい証明書をペーストします。
-----BEGIN CERTIFICATE-----
および-----END CERTIFICATE-----
マーカー行を含めます。
16.3.2.3. 管理者、エージェント、および監査ユーザー証明書の更新 リンクのコピーリンクがクリップボードにコピーされました!
証明書を更新する方法は 2 つあります。証明書を 再生成 すると、元の鍵と元のプロファイルと要求を取得し、新しい有効期間と有効期限で同一の鍵を再作成します。証明書の キーを再入力 すると、最初の証明書要求が元のプロファイルに再送信されますが、新しいキーペアが生成されます。管理者証明書は、キーを再入力することで更新できます。
各サブシステムには、サブシステムの作成時に作成されたブートストラップユーザーがあります。デフォルトの更新プロファイルの 1 つを使用して、元の証明書の有効期限が切れる前に、このユーザーに新しい証明書を要求できます。
管理ユーザーの証明書は、元の証明書のシリアル番号を使用して、エンドユーザー登録フォームで直接更新できます。
「証明書ベースの更新」 の説明に従って、CA のエンドユーザーフォームで管理ユーザー証明書を更新します。これは、最初に発行した証明書 (またはそのクローン) と同じ CA である必要があります。
エージェント証明書は、エンドエンティティーページで証明書ベースの更新フォームを使用して更新できます。Self-renew user SSL client certificate。このフォームは、ブラウザーの証明書ストアに保存されている証明書を直接認識して更新します。
注記「
certutil
を使用した証明書の更新」 で説明されているように、certutil
を使用して証明書を更新することもできます。ブラウザーに保存されている証明書を使用して更新を開始するのではなく、certutil
は元のキーで入力ファイルを使用します。更新されたユーザー証明書を内部 LDAP データベースのユーザーエントリーに追加します。
サブシステムのコンソールを開きます。
pkiconsole https://server.example.com:admin_port/subsystem_type
pkiconsole https://server.example.com:admin_port/subsystem_type
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記pkiconsole
は非推奨になりました。- 設定 | ユーザーとグループ | ユーザー | 管理 | 証明書 | インポート
- Configuration タブで、Users and Groups を選択します。
- Users タブで、更新された証明書が含まれるユーザーエントリーをダブルクリックし、 をクリックします。
- をクリックし、base-64 でエンコードされた証明書に貼り付けます。
これは、ldapmodify
を使用して、ユーザーエントリーの userCertificate
属性 (例: uid=admin,ou=people,dc=subsystem-base-DN
) を置き換え、内部の LDAP データベースでユーザーエントリーに直接更新した証明書を追加しました。
16.3.2.4. 期限切れの管理者、エージェント、および監査者のユーザー証明書の更新 リンクのコピーリンクがクリップボードにコピーされました!
有効なユーザー証明書の有効期限がすでに切れている場合、Web サービスページも、認証が必要な pki
コマンドラインツールも使用できなくなります。このようなシナリオでは、pki-server cert-fix
コマンドを使用して、期限切れの証明書を更新できます。
続行する前に、次のことを確認してください。
- 有効な CA 証明書があります。
- root 権限がある
手順
セルフテストを無効にします。
次のコマンドを実行します。
pki-server selftest-disable -i PKI_instance
# pki-server selftest-disable -i PKI_instance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、CA の
CS.cfg
ファイルから次の行を削除し、CA サブシステムを再起動します。selftests.container.order.startup=CAPresence:critical, SystemCertsVerification:critical
selftests.container.order.startup=CAPresence:critical, SystemCertsVerification:critical
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
クライアントの NSS データベースで期限切れの証明書を確認し、証明書のシリアル番号 (証明書 ID) を見つけます。
ユーザー証明書をリスト表示します。
certutil -L -d /root/nssdb/
# certutil -L -d /root/nssdb/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新する期限切れの証明書のシリアル番号を取得します。
certutil -L -d /root/nssdb/ -n Expired_cert | grep Serial
# certutil -L -d /root/nssdb/ -n Expired_cert | grep Serial Serial Number: 16 (0x10)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
証明書を更新します。ローカル LDAP サーバーには、LDAP Directory Manager のパスワードが必要です。
pki-server cert-fix --ldap-url ldap://host389 --agent-uid caadmin -i PKI_instance -p PKI_https_port --extra-cert 16
# pki-server cert-fix --ldap-url ldap://host389 --agent-uid caadmin -i PKI_instance -p PKI_https_port --extra-cert 16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow セルフテストを再度有効にします。
次のコマンドを実行します。
pki-server selftest-enable -i PKI_instance
# pki-server selftest-enable -i PKI_instance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、次の行を CA の CS.cfg ファイルに追加して、CA サブシステムを再起動します。
selftests.container.order.startup=CAPresence:critical, SystemCertsVerification:critical
selftests.container.order.startup=CAPresence:critical, SystemCertsVerification:critical
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
証明書の更新に成功したことを確認するには、次のコマンドを実行して、証明書に関する十分な情報を表示できます。
pki ca-cert-find
# pki ca-cert-find
属性、拡張機能、公開鍵モジュラス、ハッシュなどを含む特定の証明書の完全な詳細を表示するには、次を実行することもできます。
pki ca-cert-show 16 --pretty
# pki ca-cert-show 16 --pretty
16.3.2.5. Certificate System ユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーは内部データベースから削除できます。内部データベースからユーザーを削除すると、そのユーザーが属するすべてのグループから削除されます。特定のグループからユーザーを削除するには、グループメンバーシップを変更します。
以下の手順を実行して、内部データベースから特権ユーザーを削除します。
- 管理コンソールにログインします。
- 左側のナビゲーションメニューから Users and Groups を選択します。
- ユーザー ID のリストからユーザーを選択して、 をクリックします。
- プロンプトが表示されたら削除を確認します。