13.5. LDAP データベースの設定
- 証明書要求の保存および取得
- 証明書レコードの保存および取得
- CRL の保存
- ACL の保存
- 特権ユーザーとロール情報の保存
- エンドユーザーの暗号化秘密鍵レコードの保存および取得
これらの機能を満たすために、Certificate System は 内部データベース または ローカルデータベース と呼ばれる Red Hat Directory Server に組み込まれています。Directory Server は、Certificate System 設定の一部として参照されます。Certificate System サブシステムが設定されている場合は、新しいデータベースが Directory Server 内に作成されます。このデータベースは、Certificate System インスタンスのみが組み込みデータベースとして使用し、Directory Server に同梱されているディレクトリー管理ツールを使用して管理できます。
Certificate System インスタンスデータベースは、serverRoot
/slapd-
DS_name/db/
内の他のディレクトリーサーバーデータベースと一緒に一覧表示されます。これらのデータベースは、/etc/pki/default.cfg
ファイル内の指定されたサブシステムセクションの下の変数 pki_ds_database
の値によって決定される値によって名前が付けられます (デフォルトでは CS_instance_name-CA、CS_instance_name-KRA、CS_instance_name-OCSP、CS_instance_name-TKS、および CS_instance_name-TPS)。これは、インスタンス設定時に指定されるデフォルトの形式です。たとえば、証明書マネージャーが ca1 の場合、データベース名は ca1-CA になります。同様に、データベース名は、/etc/pki/default.cfg
ファイル内の指定されたサブシステムセクション下の pki_ds_base_dn
の値によって決定されます (デフォルトでは o=CS_instance_name-CA、o=CS_instance_name-KRA、o=CS_instance_name-OCSP、o=CS_instance_name-TKS、または o=CS_instance_name-TPS)。
サブシステムはデータベースを使用して異なるオブジェクトを保存します。証明書マネージャーはすべてのデータ、証明書要求、証明書、CRL、および関連情報を格納しますが、KRA はキーレコードと関連データのみを格納します。
警告
13.5.1. 内部データベース設定の変更 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
サブシステムインスタンスが内部データベースとして使用する Directory Server インスタンスを変更するには、以下を実行します。
- サブシステム管理コンソールにログインします。
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 - Configuration タブで Internal Database タブを選択します。
- ホスト名、ポート、およびバインド DN フィールドを変更して、Directory Server インスタンスを変更します。ホスト名は、Directory Server がインストールされているマシンの完全修飾ホスト名です (certificates.example.com など)。Certificate System はこの名前を使用してディレクトリーにアクセスします。デフォルトでは、内部データベースとして使用されている Directory Server インスタンスのホスト名は、実際のホスト名ではなく、localhost と表示されます。これは、localhost のサーバーはローカルマシンからしかアクセスできないため、内部データベースがシステムの外部に表示されないようにするために行われます。したがって、デフォルト設定では、ローカルマシンからこの Directory Server インスタンスに接続する責任が最小限に抑えられます。ホスト名は、内部データベースの可視性がローカルサブネットに制限されている場合は、localhost 以外のものに変更できます。たとえば、Certificate System と Directory Server が負荷分散のために別のマシンにインストールされている場合は、Directory Server がインストールされているマシンのホスト名を指定します。ポート番号は、Directory Server と SSL 以外の通信に使用される TCP/IP ポートです。DN は Directory Manager DN である必要があります。Certificate System サブシステムは、ディレクトリーツリーにアクセスしてディレクトリーと通信する際にこの DN を使用します。
- 設定が変更されます。変更にサーバーの再起動が必要な場合は、プロンプトとそのメッセージが表示されます。その場合には、サーバーを再起動します。
13.5.2. Directory Server で証明書システムが発行する証明書の使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
証明書システムのインストール時に Directory Server への暗号化された接続を使用するには、外部の認証局 (CA) によって発行された証明書または自己署名証明書のいずれかを使用する必要がありました。ただし、証明書システム CA を設定した後、管理者は、証明書システムが発行した証明書に置き換えることがよくあります。
Directory Server が使用する TLS 証明書を、Certificate System が発行した証明書に置き換えるには、次のコマンドを実行します。
- Directory Server ホストで以下を行います。
- Directory Server インスタンスを停止します。
systemctl stop dirsrv@instance_name
# systemctl stop dirsrv@instance_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Certificate Signing Request (CSR) を生成します。たとえば、2048 ビット RSA 暗号化を使用し、これを
~/ds.csr
ファイルに保存する CSR を生成するには、以下を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Directory Server インスタンスを起動し、CA が要求の処理できるようにします。
systemctl start dirsrv@instance_name
# systemctl start dirsrv@instance_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - CSR を Certificate System の CA に送信します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Certificate System ホストで以下を行います。
- CA エージェント証明書を Network Security Services (NSS) データベースにインポートして、CMC フル要求を署名します。
- 新しいディレクトリーを作成します。以下に例を示します。
mkdir ~/certs_db/
# mkdir ~/certs_db/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 新たに作成したディレクトリーでデータベースを初期化します。
certutil -N -d ~/certs_db/
# certutil -N -d ~/certs_db/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - CA 署名証明書のシリアル番号を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 前の手順のシリアル番号を使用して、CA 署名証明書を
~/certs_db/CA.pem
ファイルにダウンロードします。pki -p 8080 ca-cert-show 0x87bbe2d --output ~/certs_db/CA.pem
# pki -p 8080 ca-cert-show 0x87bbe2d --output ~/certs_db/CA.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - CA 署名証明書を NSS データベースにインポートします。
pki -d ~/certs_db/ -c password client-cert-import "CA Certificate" --ca-cert ~/certs_db/CA.pem
# pki -d ~/certs_db/ -c password client-cert-import "CA Certificate" --ca-cert ~/certs_db/CA.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - エージェントの証明書をインポートします。
pk12util -d ~/certs_db/ -i ~/.dogtag/instance_name/ca_admin_cert.p12
# pk12util -d ~/certs_db/ -i ~/.dogtag/instance_name/ca_admin_cert.p12 Enter Password or Pin for "NSS FIPS 140-2 Certificate DB": password Enter password for PKCS12 file: password pk12util: PKCS12 IMPORT SUCCESSFUL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- CMS (CMC) 要求で Certificate Management を作成します。
~/sslserver-cmc-request.cfg
などの設定ファイルを以下の内容で作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - CMC 要求を作成します。
CMCRequest ~/sslserver-cmc-request.cfg
# CMCRequest ~/sslserver-cmc-request.cfg ... The CMC enrollment request in base-64 encoded format: ... The CMC enrollment request in binary format is stored in ~/sslserver-cmc-request.bin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- CMC 要求を送信します。
~/sslserver-cmc-submit.cfg
などの設定ファイルを以下の内容で作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 要求を送信します。
HttpClient sslserver-cmc-submit.cfg
# HttpClient sslserver-cmc-submit.cfg ... The response in binary format is stored in ~/sslserver-cmc-response.bin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 必要に応じて、結果を確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Directory Server 証明書のシリアル番号を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 前の手順でシリアル番号を使用して、証明書をダウンロードします。
pki -p 8080 ca-cert-show 0xc3eeb0c --output ~/ds.crt
# pki -p 8080 ca-cert-show 0xc3eeb0c --output ~/ds.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Directory Server および CA 証明書の証明書を Directory Server ホストにコピーします。以下に例を示します。
scp ~/ds.crt ~/certs_db/CA.pem ds.example.com:~/
# scp ~/ds.crt ~/certs_db/CA.pem ds.example.com:~/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Certificate System を停止します。
systemctl stop pki-tomcatd@instance_name.service
# systemctl stop pki-tomcatd@instance_name.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Directory Server ホストで以下を行います。
- Directory Server インスタンスを停止します。
systemctl stop dirsrv@instance_name
# systemctl stop dirsrv@instance_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 証明書を置き換えます。詳細は、『Red Hat Directory Server 管理ガイド』 の該当するセクションを参照してください。
- 古い証明書および CA 証明書を削除します。『証明書の削除』を参照してください。
- Certificate System が発行する CA 証明書をインストールします。『認証局証明書のインストール』を参照してください。
- Certificate System が発行する Directory Server の証明書をインストールします。『証明書のインストール』を参照してください。
- Directory Server インスタンスを停止します。
systemctl start dirsrv@instance_name
# systemctl start dirsrv@instance_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Certificate System を開始します。
systemctl stop pki-tomcatd@instance_name.service
# systemctl stop pki-tomcatd@instance_name.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 必要に応じて、証明書ベースの認証を設定します。詳細は、「内部データベースでの SSL/TLS クライアント認証の有効化」 を参照してください。
13.5.3. 内部データベースでの SSL/TLS クライアント認証の有効化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
クライアント認証 により、あるエンティティーが証明書を提示して別のエンティティーに対して認証できるようにします。この認証方法は、たとえば、Certificate System エージェントがエージェントサービスページにログインするために使用します。
Certificate System インスタンスと、内部データベースとして使用する LDAP ディレクトリーインスタンスとの間で SSL/TLS 接続を使用するには、Certificate System インスタンスが LDAP ディレクトリーを認証してバインドできるようにクライアント認証を有効にする必要があります。
クライアント認証の設定には 2 つの部分があります。1 つ目は、SSL/TLS を設定し、Certificate System インスタンスのアクセスを制御するように ACI を設定するなど、LDAP ディレクトリーを設定します。2 つ目は、LDAP ディレクトリーにバインドして、証明書を設定するのに使用する Certificate System インスタンスでユーザーを作成します。
PKI インスタンスの LDAPS を設定するには、pkispawn(8) man ページの (例: セキュアな LDAP 接続を使用した PKI サブシステムのインストール) を参照してください。
13.5.4. 内部データベースへのアクセス制限 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Directory Server コンソールは、Certificate System が内部データベースとして使用する Directory Server インスタンスのエントリーまたはアイコンを表示します。
Certificate System 管理者権限を持つユーザーにアクセスが制限されている Certificate System Console とは異なり、Directory Server Console は、どのユーザーからでもアクセスすることができる。ユーザーは、内部データベースの Directory Server Console を開いて、そこに保存されているデータに変更できます (Certificate System 管理者グループからユーザーを削除したり、グループに自分のエントリーを追加したりなど)。
アクセスは、Directory Manager DN とパスワードを知っているユーザーのみに内部データベースに制限できます。このパスワードは、シングルサインオンのパスワードキャッシュを変更することで変更できます。
- Directory Server コンソールにログインします。
- Certificate System 内部データベースエントリーを選択して、をクリックします。
- Configuration タブを選択します。
- ナビゲーションツリーで Plug-ins を展開し、Pass-Through Authentication を選択します。
- 右側のペインで、Enable plugin チェックボックスの選択を解除します。
- サーバーを再起動するように要求します。
- Tasks タブをクリックして、 をクリックします。
- Directory Server コンソールを閉じます。
- サーバーが再起動したら、内部データベースインスタンスの Directory Server コンソールを開きます。Login to Directory ダイアログボックスが表示されます。Distinguished Name フィールドが Directory Manager DN を表示し、パスワードを入力します。内部データベースの Directory Server Console は、正しいパスワードを入力する場合のみ開きます。