6.5. Red Hat Directory Server のインストール
Certificate System は、Red Hat Directory Server を使用して、システム証明書とユーザーデータを保存します。Directory Server と Certificate System の両方を、ネットワーク内の同じまたは他のホストにインストールできます。
6.5.1. 証明書システム用の Directory Server インスタンスの準備 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Directory Server をインストールするには、以下の手順を実行します。
- Directory Server サブスクリプションをホストに割り当てます。
- Directory Server および openldap-clients パッケージをインストールします。
yum install redhat-ds openldap-clients
# yum install redhat-ds openldap-clientsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Directory Server インスタンスを設定します。以下に例を示します。
- 以下の内容で、
/tmp/ds-setup.infなどの設定設定ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 設定設定ファイルを使用してインスタンスを作成します。
setup-ds.pl --silent --file=/tmp/ds-setup.inf
setup-ds.pl --silent --file=/tmp/ds-setup.infCopy to Clipboard Copied! Toggle word wrap Toggle overflow
詳細な手順は、『Red Hat Directory Server インストールガイド』 を参照してください。
6.5.2. Directory Server での TLS サポートの有効化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
すべての Certificate System コンポーネントは、TLS 暗号化接続を使用して Directory Server インスタンスと通信します。この接続では、Certificate System コンポーネントを使用して、クライアント認証 (相互認証) を介して Directory Server を認証する必要があります。
Directory Server で TLS サポートを有効にする方法の詳細は、『Directory Server 管理ガイド』 の 『Directory Server での TLS サポートの有効化』 セクションを参照してください。
Directory Server の TLS サーバー証明書を要求および発行する方法の詳細は、『Red Hat Certificate System 管理ガイド (Common Criteria Edition)』 の 『Directory Server で Certificate System が発行する証明書の使用』 セクションを参照してください。
Directory Server のドキュメントで説明されているように、外部認証局 (CA) によって発行された証明書、または一時的な自己署名サーバー証明書のいずれかを使用して TLS を設定できます。ただし、Certificate System CA を設定した後、この CA を使用して証明書を発行し、Directory Server の設定時に使用した証明書に置き換えることができます。
6.5.2.1. 例の値を使用した新規 Red Hat Certificate System サブシステムでの LDAPS の有効化方法 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
注記
この TLS LDAP 手順を実行するときの最終的な目標は、TLS クライアント認証を介して接続することです。プロセス時、ステップごとに中間ゴールで移行する必要があります。このような目的の 1 つは、最初に実行する TLS サーバー認証を設定することです。最後に、プロセスは折り返し、完全なクライアント認証を操作可能にします。
- NSS データベースへの同時変更を回避するために、Directory Server インスタンスを停止します。
systemctl stop dirsrv@instance_name.service
# systemctl stop dirsrv@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Directory Manager のパスワードを
/etc/dirsrv/instance_name/password.txtファイルに保存します。以下に例を示します。echo password > /etc/dirsrv/slapd-instance_name/password.txt chown dirsrv.dirsrv /etc/dirsrv/slapd-instance_name/password.txt chmod 400 /etc/dirsrv/slapd-instance_name/password.txt
# echo password > /etc/dirsrv/slapd-instance_name/password.txt # chown dirsrv.dirsrv /etc/dirsrv/slapd-instance_name/password.txt # chmod 400 /etc/dirsrv/slapd-instance_name/password.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Directory Manager のパスワードを
/etc/dirsrv/instance_name/pin.txtファイルに保存します。以下に例を示します。echo "Internal (Software) Token:password" > /etc/dirsrv/slapd-instance_name/pin.txt chown dirsrv.dirsrv /etc/dirsrv/slapd-instance_name/pin.txt chmod 400 /etc/dirsrv/slapd-instance_name/pin.txt
# echo "Internal (Software) Token:password" > /etc/dirsrv/slapd-instance_name/pin.txt # chown dirsrv.dirsrv /etc/dirsrv/slapd-instance_name/pin.txt # chmod 400 /etc/dirsrv/slapd-instance_name/pin.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow - NSS データベースのパスワードを設定します。
certutil -W -d /etc/dirsrv/slapd-instance_name/ -f /etc/dirsrv/slapd-instance_name/password.txt
# certutil -W -d /etc/dirsrv/slapd-instance_name/ -f /etc/dirsrv/slapd-instance_name/password.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Directory Server の一時的な自己署名証明書を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Directory Server 証明書エントリーが NSS データベースで利用可能かどうかを確認します。
certutil -L -d /etc/dirsrv/slapd-instance_name/
# certutil -L -d /etc/dirsrv/slapd-instance_name/Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 証明書をエクスポートします。
certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate" -a > ds.crt
# certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate" -a > ds.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Directory Server 証明書が自己署名されていることを確認します。
certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate" Issuer: "CN=server.example.com" Subject: "CN=server.example.com"
# certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate" Issuer: "CN=server.example.com" Subject: "CN=server.example.com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Directory Server インスタンスを停止します。
systemctl start dirsrv@instance_name
# systemctl start dirsrv@instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow - セキュアな接続を有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 必要に応じて、デフォルトとは異なる LDAPS ポートを設定します(636)。
- たとえば、LDAPS ポートを 11636 に設定するには、以下を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - この標準以外のポートの SELinux ポリシーを設定します。
semanage port -a -t ldap_port_t -p tcp 11636
# semanage port -a -t ldap_port_t -p tcp 11636Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Directory Server インスタンスを再起動します。
systemctl restart dirsrv@instance_name
# systemctl restart dirsrv@instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/log/dirsrv/slapd-instance_name/errorsファイルで、Directory Server が TLS モードで起動したことを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow openldap-clientsおよび NSS データベースを使用して TLS 接続を確認します。LDAPTLS_CACERTDIR=/etc/dirsrv/slapd-instance_name \ ldapsearch -H ldaps://$HOSTNAME:11636 \ -x -D "cn=Directory Manager" -w Secret.123 \ -b "dc=example,dc=org" -s base "(objectClass=*)"
$ LDAPTLS_CACERTDIR=/etc/dirsrv/slapd-instance_name \ ldapsearch -H ldaps://$HOSTNAME:11636 \ -x -D "cn=Directory Manager" -w Secret.123 \ -b "dc=example,dc=org" -s base "(objectClass=*)"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.3. 証明書システムの設定の準備 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
「pkispawn ユーティリティーを使用したインストール」 では、Certificate System をインストールするときに、
pkispawn ユーティリティーに渡す設定ファイルで以下のパラメーターを使用するように指示されます。
注記
最初に基本的な TLS サーバー認証接続を作成する必要があります。最後に、インストール後、接続に戻り、クライアント認証証明書を Directory Server に提示する必要があります。クライアント認証が設定されていると、
pki_ds_password は関連なくなります。
pki_ds_database パラメーターの値は、pkispawn ユーティリティーによって使用される名前で、Directory Server インスタンスで対応するサブシステムデータベースを作成します。
pki_ds_hostname パラメーターの値は、Directory Server インスタンスのインストール場所によって異なります。これは、「証明書システム用の Directory Server インスタンスの準備」 および 「Directory Server での TLS サポートの有効化」 で使用される値によって異なります。
pki_ds_secure_connection=True を設定する場合は、以下のパラメーターを設定する必要があります。
pki_ds_secure_connection_ca_pem_file: Directory Server の CA 証明書のエクスポートされたコピーを含むファイルのファイル名を含む完全修飾パスを設定します。このファイルは、pkispawnを使用する前に存在している必要があります。pki_ds_ldaps_port: Directory Server がリッスンしているセキュアな LDAPS ポートの値を設定します。デフォルトは 636 です。
6.5.4. 一時的な証明書の置き換え リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
注記
本セクションでは、ルート CA をインストールして実行する必要があります。インストール後に、本セクションの指示に従うように指示されます。
このセクションでは、一時的な自己署名 Directory Server 証明書を新しくインストールした CA によって発行された永続的な Directory Server 証明書に置き換えるプロセス、または古い Directory Server 証明書を新しいものに置き換えるプロセスを説明します。
- 新しい Directory Server サーバー証明書を取得します。CA が署名した新規証明書の要求を送信します。CMC メソッドを使用して、新しいディレクトリーサーバー証明書を取得するには、『Red Hat Certificate System 管理ガイド (Common Criteria Edition)』 の 『システム証明書およびサーバー証明書の取得』 セクションを参照してください。上記のセクションで、TLS サーバー証明書の作成に関するガイダンスに従ってください。証明書を作成したら、Directory Server 証明書データベースにインポートし直す必要があります。
- NSS データベースにアクセスする前に、Directory Server インスタンスを停止します。
systemctl stop dirsrv@instance_name
# systemctl stop dirsrv@instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 古い Directory Server 証明書を削除します。
certutil -F -d /etc/dirsrv/slapd-instance_name -f /etc/dirsrv/slapd-instance_name/password.txt -n "DS Certificate"
# certutil -F -d /etc/dirsrv/slapd-instance_name -f /etc/dirsrv/slapd-instance_name/password.txt -n "DS Certificate"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 先ほどダウンロードした CA 証明書をインポートします。
PKICertImport -d /etc/dirsrv/slapd-instance_name -f /etc/dirsrv/slapd-instance_name/password.txt -n "CA Certificate" -t "CT,C,C" -a -i ca.crt -u L
# PKICertImport -d /etc/dirsrv/slapd-instance_name -f /etc/dirsrv/slapd-instance_name/password.txt -n "CA Certificate" -t "CT,C,C" -a -i ca.crt -u LCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 先にダウンロードした新しい Directory Server 証明書をインポートします。
PKICertImport -d /etc/dirsrv/slapd-instance_name -f /etc/dirsrv/slapd-instance_name/password.txt -n "DS Certificate" -t ",," -a -i ds.crt -u V
# PKICertImport -d /etc/dirsrv/slapd-instance_name -f /etc/dirsrv/slapd-instance_name/password.txt -n "DS Certificate" -t ",," -a -i ds.crt -u VCopy to Clipboard Copied! Toggle word wrap Toggle overflow 「HSM への証明書のインポート」も参照してください。 - Directory Server インスタンスを停止します。
systemctl start dirsrv@instance_name
systemctl start dirsrv@instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow - PKI CA から古い Directory Server 証明書を削除します。
- Certificate System インスタンスを停止します。
systemctl stop pki-tomcatd@instance_name.service
# systemctl stop pki-tomcatd@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 証明書を削除します。
certutil -D -d /var/lib/pki/instance_name/alias/ -n "DS Certificate"
# certutil -D -d /var/lib/pki/instance_name/alias/ -n "DS Certificate"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Certificate System インスタンスを起動します。
systemctl start pki-tomcatd@instance_name.service
# systemctl start pki-tomcatd@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 新しい Directory Server 証明書が、NSS データベースにインストールされている CA で署名されていることを確認します。
- Directory Server 証明書の表示
certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate" Issuer: "CN=CA Signing Certificate,O=EXAMPLE" Subject: "CN=server.example.com"
$ certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate" Issuer: "CN=CA Signing Certificate,O=EXAMPLE" Subject: "CN=server.example.com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 古い Directory Server 証明書が PKI NSS データベースに存在しなくなったことを確認します。
certutil -L -d /var/lib/pki/instance_name/alias
$ certutil -L -d /var/lib/pki/instance_name/aliasCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Certificate System が、新しい証明書を使用して Directory Server に接続できることを確認します。
pki cert-find
$ pki cert-findCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.5. TLS クライアント認証の有効化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
注記
本セクションでは、ルート CA をインストールして実行する必要があります。一時的な LDAP サーバー証明書を使用している場合は、最初に 「一時的な証明書の置き換え」 で置き換えます。インストール後は、このセクションの指示に従ってください。
基本的な TLS サーバー認証が設定され、CS サブシステムのインストール中に実行されました。これで、指定されたサブシステムから LDAP サーバーへのクライアント認証を有効にできるようになります。
クライアント認証の設定には 2 つの部分があります。最初の部分は、TLS の相互認証を必要とする LDAP ディレクトリーを設定します。この手順は 9.8 で詳しく説明します。Red Hat Directory Server 管理ガイドで証明書ベースのクライアント認証の使用
次の点に注意してください。
pkispawnは、送信 TLS クライアント認証に使用される CS インスタンスのサブシステム証明書(subsystemCert cert-pki-ca)がユーザーエントリーに保存される内部ディレクトリーサーバーにpkidbuserを自動的に作成しています。したがって、TLS クライアント認証用に別の LDAP ユーザーまたは別の証明書を作成する必要はありません。/etc/dirsrv/slapd-instance_name/certmap.confのコンテンツを作成する場合は、以下の形式を使用します。certmap rhcs <certificate issuer DN> rhcs:CmapLdapAttr seeAlso rhcs:verifyCert on
certmap rhcs <certificate issuer DN> rhcs:CmapLdapAttr seeAlso rhcs:verifyCert onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。certmap rhcs CN=CA Signing Certificate,OU=pki-tomcat-ca,O=pki-tomcat-ca-SD rhcs:CmapLdapAttr seeAlso rhcs:verifyCert on
certmap rhcs CN=CA Signing Certificate,OU=pki-tomcat-ca,O=pki-tomcat-ca-SD rhcs:CmapLdapAttr seeAlso rhcs:verifyCert onCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 設定後に、Directory Server を再起動します。
2 番目の部分は、Red Hat Certificate System インスタンスに設定を追加して、TLS 相互認証を使用して内部 LDAP サーバーと通信するために使用するポートと証明書を認識できるようにすることです。これには、<instance
directory> / <subsystem type> /conf/ CS.cfg にある RHCS インスタンスの CS.cfg ファイルを編集する必要があります。例: /var/lib/pki/pki-tomcat/ca/conf/CS.cfg
CS.cfg で、RHCS インスタンスのサブシステム証明書のニックネームを internaldb.ldapauth.clientCertNickname に追加し、2 つの未使用のエントリーを削除します。
internaldb.ldapauth.bindDN internaldb.ldapauth.bindPWPrompt
internaldb.ldapauth.bindDN
internaldb.ldapauth.bindPWPrompt
以下に例を示します。
インストール後のステップの最後に CS インスタンスを再起動します。
注記
特定の LDAP インスタンスに一致するように、
internaldb.basedn パラメーターおよび internaldb.database パラメーターを設定する必要があります。
コンプライアンスのために、internaldb.ldapauth.authtype=SslClientAuth および internaldb.ldapconn.secureConn=true を設定する必要があります。
internaldb.ldapauth.clientCertNickname の値は、NSS DB の を使用して LDAP に対して認証するために TLS クライアント証明書のニックネームと一致する必要があります。
その他の値はすべて、環境または可用性の要件を反映するために必要に応じて変更できます。