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 をインストールするには、以下の手順を実行します。
  1. Directory Server サブスクリプションをホストに割り当てます。
  2. Directory Server および openldap-clients パッケージをインストールします。
    # yum install redhat-ds openldap-clients
    Copy to Clipboard Toggle word wrap
  3. Directory Server インスタンスを設定します。以下に例を示します。
    1. 以下の内容で、/tmp/ds-setup.inf などの設定設定ファイルを作成します。
      [General]
      FullMachineName=server.example.com
      SuiteSpotUserID=dirsrv
      SuiteSpotGroup=dirsrv
      
      [slapd]
      ServerIdentifier=instance_name
      ServerPort=389
      Suffix=dc=example,dc=org
      RootDN=cn=Directory Manager
      RootDNPwd=password
      Copy to Clipboard Toggle word wrap
    2. 設定設定ファイルを使用してインスタンスを作成します。
      setup-ds.pl --silent --file=/tmp/ds-setup.inf
      Copy to Clipboard Toggle word wrap
    詳細な手順は、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 サーバー認証を設定することです。最後に、プロセスは折り返し、完全なクライアント認証を操作可能にします。
  1. NSS データベースへの同時変更を回避するために、Directory Server インスタンスを停止します。
    # systemctl stop dirsrv@instance_name.service
    Copy to Clipboard Toggle word wrap
  2. 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
    Copy to Clipboard Toggle word wrap
  3. 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
    Copy to Clipboard Toggle word wrap
  4. NSS データベースのパスワードを設定します。
    # certutil -W -d /etc/dirsrv/slapd-instance_name/ -f /etc/dirsrv/slapd-instance_name/password.txt
    Copy to Clipboard Toggle word wrap
  5. Directory Server の一時的な自己署名証明書を作成します。
    $ cd /etc/dirsrv/slapd-instance_name
    $ openssl rand -out noise.bin 2048
    $ certutil -S \
    	-x \
    	-d . \
    	-f password.txt \
    	-z noise.bin \
    	-n "DS Certificate" \
    	-s "CN=$HOSTNAME" \
    	-t "CT,C,C" \
    	-m $RANDOM \
    	-k rsa \
    	-g 2048 \
    	-Z SHA256 \
    	--keyUsage certSigning,keyEncipherment
    Copy to Clipboard Toggle word wrap
  6. Directory Server 証明書エントリーが NSS データベースで利用可能かどうかを確認します。
    # certutil -L -d /etc/dirsrv/slapd-instance_name/
    Copy to Clipboard Toggle word wrap
  7. 証明書をエクスポートします。
    # certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate" -a > ds.crt
    Copy to Clipboard Toggle word wrap
  8. Directory Server 証明書が自己署名されていることを確認します。
    # certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate"
    Issuer: "CN=server.example.com"
    Subject: "CN=server.example.com"
    Copy to Clipboard Toggle word wrap
  9. Directory Server インスタンスを停止します。
    # systemctl start dirsrv@instance_name
    Copy to Clipboard Toggle word wrap
  10. セキュアな接続を有効にします。
    # ldapmodify -x -p 389 -h $HOSTNAME -D "cn=Directory Manager" -w password << EOF
    dn: cn=config
    changetype: modify
    replace: nsslapd-security
    nsslapd-security: on
    
    dn: cn=RSA,cn=encryption,cn=config
    changetype: add
    objectclass: top
    objectclass: nsEncryptionModule
    cn: RSA
    nsSSLPersonalitySSL: DS Certificate
    nsSSLToken: internal (software)
    nsSSLActivation: on
    EOF
    Copy to Clipboard Toggle word wrap
  11. 必要に応じて、デフォルトとは異なる LDAPS ポートを設定します(636)。
    1. たとえば、LDAPS ポートを 11636 に設定するには、以下を実行します。
      ldapmodify -x -p 389 -h $HOSTNAME -D "cn=Directory Manager" -w password << EOF
      dn: cn=config
      changetype: modify
      replace: nsslapd-secureport
      nsslapd-secureport: 11636
      EOF
      Copy to Clipboard Toggle word wrap
    2. この標準以外のポートの SELinux ポリシーを設定します。
      # semanage port -a -t ldap_port_t -p tcp 11636
      Copy to Clipboard Toggle word wrap
  12. Directory Server インスタンスを再起動します。
    # systemctl restart dirsrv@instance_name
    Copy to Clipboard Toggle word wrap
  13. /var/log/dirsrv/slapd-instance_name/errors ファイルで、Directory Server が TLS モードで起動したことを確認します。
    [30/Jun/2016:00:23:31 +0200] - SSL alert: Security Initialization: Enabling default cipher set.
    [30/Jun/2016:00:23:31 +0200] - SSL alert: Configured NSS Ciphers
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_DHE_RSA_WITH_AES_128_CBC_SHA: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_DHE_DSS_WITH_AES_128_CBC_SHA: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_DHE_RSA_WITH_AES_256_CBC_SHA: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_DHE_DSS_WITH_AES_256_CBC_SHA: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_RSA_WITH_AES_128_GCM_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_RSA_WITH_AES_128_CBC_SHA: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_RSA_WITH_AES_128_CBC_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_RSA_WITH_AES_256_CBC_SHA: enabled
    [30/Jun/2016:00:23:31 +0200] - SSL alert:       TLS_RSA_WITH_AES_256_CBC_SHA256: enabled
    [30/Jun/2016:00:23:31 +0200] SSL Initialization - Configured SSL version range: min: TLS1.0, max: TLS1.2
    [30/Jun/2016:00:23:31 +0200] - 389-Directory/1.3.4.11 B2016.166.1911 starting up
    Copy to Clipboard Toggle word wrap
  14. 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=*)"
    Copy to Clipboard Toggle word wrap

6.5.3. 証明書システムの設定の準備

pkispawn ユーティリティーを使用したインストール」 では、Certificate System をインストールするときに、pkispawn ユーティリティーに渡す設定ファイルで以下のパラメーターを使用するように指示されます。
注記
最初に基本的な TLS サーバー認証接続を作成する必要があります。最後に、インストール後、接続に戻り、クライアント認証証明書を Directory Server に提示する必要があります。クライアント認証が設定されていると、pki_ds_password は関連なくなります。
pki_ds_database=back_end_database_name
pki_ds_hostname=host_name
pki_ds_secure_connection=True
pki_ds_secure_connection_ca_pem_file=path_to_CA_or_self-signed_certificate
pki_ds_password=password
pki_ds_ldaps_port=port
pki_ds_bind_dn=cn=Directory Manager
Copy to Clipboard Toggle word wrap
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 証明書を新しいものに置き換えるプロセスを説明します。
  1. 新しい Directory Server サーバー証明書を取得します。CA が署名した新規証明書の要求を送信します。CMC メソッドを使用して、新しいディレクトリーサーバー証明書を取得するには、『Red Hat Certificate System 管理ガイド (Common Criteria Edition)』 の 『システム証明書およびサーバー証明書の取得』 セクションを参照してください。
    上記のセクションで、TLS サーバー証明書の作成に関するガイダンスに従ってください。証明書を作成したら、Directory Server 証明書データベースにインポートし直す必要があります。
  2. NSS データベースにアクセスする前に、Directory Server インスタンスを停止します。
    # systemctl stop dirsrv@instance_name
    Copy to Clipboard Toggle word wrap
  3. 古い Directory Server 証明書を削除します。
    # certutil -F -d /etc/dirsrv/slapd-instance_name -f /etc/dirsrv/slapd-instance_name/password.txt -n "DS Certificate"
    Copy to Clipboard Toggle word wrap
  4. 先ほどダウンロードした 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
    Copy to Clipboard Toggle word wrap
  5. 先にダウンロードした新しい 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
    Copy to Clipboard Toggle word wrap
    「HSM への証明書のインポート」も参照してください。
  6. Directory Server インスタンスを停止します。
    systemctl start dirsrv@instance_name
    Copy to Clipboard Toggle word wrap
  7. PKI CA から古い Directory Server 証明書を削除します。
    1. Certificate System インスタンスを停止します。
      # systemctl stop pki-tomcatd@instance_name.service
      Copy to Clipboard Toggle word wrap
    2. 証明書を削除します。
      # certutil -D -d /var/lib/pki/instance_name/alias/ -n "DS Certificate"
      Copy to Clipboard Toggle word wrap
    3. Certificate System インスタンスを起動します。
      # systemctl start pki-tomcatd@instance_name.service
      Copy to Clipboard Toggle word wrap
  8. 新しい Directory Server 証明書が、NSS データベースにインストールされている CA で署名されていることを確認します。
    1. 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"
      Copy to Clipboard Toggle word wrap
    2. 古い Directory Server 証明書が PKI NSS データベースに存在しなくなったことを確認します。
      $ certutil -L -d /var/lib/pki/instance_name/alias
      Copy to Clipboard Toggle word wrap
    3. Certificate System が、新しい証明書を使用して Directory Server に接続できることを確認します。
      $ pki cert-find
      Copy to Clipboard Toggle word wrap

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
    Copy to Clipboard Toggle word wrap
    以下に例を示します。
    certmap rhcs CN=CA Signing Certificate,OU=pki-tomcat-ca,O=pki-tomcat-ca-SD
    rhcs:CmapLdapAttr seeAlso
    rhcs:verifyCert on
    Copy to Clipboard Toggle word wrap
  • 設定後に、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
Copy to Clipboard Toggle word wrap
以下に例を示します。
internaldb._000=##
internaldb._001=## Internal Database
internaldb._002=##
internaldb.basedn=o=pki-tomcat-ca-SD
internaldb.database=pki-tomcat-ca
internaldb.maxConns=15
internaldb.minConns=3
internaldb.ldapauth.authtype=SslClientAuth
internaldb.ldapauth.clientCertNickname=HSM-A:subsystemCert pki-tomcat-ca
internaldb.ldapconn.host=example.com
internaldb.ldapconn.port=11636
internaldb.ldapconn.secureConn=true
Copy to Clipboard Toggle word wrap
インストール後のステップの最後に CS インスタンスを再起動します。
注記
特定の LDAP インスタンスに一致するように、internaldb.basedn パラメーターおよび internaldb.database パラメーターを設定する必要があります。
コンプライアンスのために、internaldb.ldapauth.authtype=SslClientAuth および internaldb.ldapconn.secureConn=true を設定する必要があります。internaldb.ldapauth.clientCertNickname の値は、NSS DB の を使用して LDAP に対して認証するために TLS クライアント証明書のニックネームと一致する必要があります。
その他の値はすべて、環境または可用性の要件を反映するために必要に応じて変更できます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat