15.6. 証明書ベースの認証を使用するようにレプリケーションパートナーの設定

レプリケーションパートナーに対するバインド DN およびパスワードを使用する代わりに、証明書ベースの認証を使用できます。
以下の手順では、レプリケーショントポロジーに server2.example.com という名前の新規サーバーを追加する方法を説明します。また、証明書ベースの認証を使用して、新規ホストと既存の server1.example.com との間でレプリカ合意を設定する方法を説明します。
  1. 両方のホストで、証明書ベースの認証を設定します。詳細については、「証明書ベースの認証の設定」 を参照してください。
  2. server1.example.com ホスト:
    1. 両方のサーバー (cn=server1,example,dc=comcn=server2,dc=example,dc=com など) にアカウントを作成し、クライアント証明書を対応するアカウントに追加します。詳細については、以下を参照してください。
      両方のサーバーは、後でこれらのアカウントと証明書を使用して、相互にレプリケーション接続を確立するときに認証を行います。
    2. cn=repl_server,ou=Groups,dc=example,dc=com などのグループを作成し、両方のサーバーアカウントを追加します。「グループの使用」を参照してください。
    3. レプリカエントリーを作成し、nsds5ReplicaBindDNGroup 属性を直前の手順で作成されたグループの DN に設定します。
      # dsconf -D "cn=Directory Manager" ldap://server1.example.com replication \
          enable --suffix="dc=example,dc=com" --role="supplier" --replica-id="7" \
          --bind-group-dn="cn=repl_server,ou=Groups,dc=example,dc=com"
    4. グループが変更したかどうかを Directory Server が確認するレプリカエントリーの間隔を、0 に設定します。
      # dsconf -D "cn=Directory Manager" ldap://server1.example.com replication \
           set --suffix="dc=example,dc=com" --repl-bind-group-interval=0
  3. 新しいサーバーを初期化します。
    1. server2.example.com で、cn=Replication Manager,cn=config などの一時的なレプリケーションマネージャーアカウントを作成します。
    2. server1.example.com で、認証用に直前の手順でアカウントを使用する一時的なレプリカ合意を作成します。
      # dsconf -D "cn=Directory Manager" ldap://server2.example.com repl-agmt \
           create --suffix="dc=example,dc=com" --host="server1.example.com" --port=636 \
           --conn-protocol=LDAPS --bind-dn="cn=Replication Manager,cn=config" \
           --bind-passwd="password" --bind-method=SIMPLE --init \
           temporary_agreement
      この合意は、以前に作成したレプリケーションマネージャーアカウントを使用してデータベースを初期化します。この初期化前に、server2.example.com のデータベースが空で、関連する証明書を持つアカウントは存在しません。したがって、データベースの初期化前に、証明書を使用してレプリケーションすることはできません。
  4. 新しいサーバーが初期化された後
    1. server1.example.com から一時的なレプリカ合意を削除します。
      # dsconf -D "cn=Directory Manager" ldap://server1.example.com repl-agmt \
           delete --suffix="dc=example,dc=com" temporary_agreement
    2. server2.example.com から一時的なレプリケーションマネージャーアカウントを削除します。
      # dsconf -D "cn=Directory Manager" ldap://server2.example.com replication \
           delete-manager --suffix="dc=example,dc=com" --name="Replication Manager"
  5. 証明書ベースの認証を使用する両サーバーでレプリカ合意を作成します。
    1. server1.example.com:
      # dsconf -D "cn=Directory Manager" ldap://server1.example.com repl-agmt \
           create --suffix="dc=example,dc=com" --host="server2.example.com" --port=636 \
           --conn-protocol=LDAPS --bind-method="SSLCLIENTAUTH" \
           --init example_agreement
    2. server2.example.com:
      # dsconf -D "cn=Directory Manager" ldap://server2.example.com repl-agmt \
           create --suffix="dc=example,dc=com" --host="server1.example.com" --port=636 \
           --conn-protocol=LDAPS --bind-method="SSLCLIENTAUTH" \
           --init example_agreement
  6. レプリケーションが正しく機能していることを確認するには、レプリカ合意に nsds5replicaLastUpdateStatus 属性を表示します。
    # dsconf -D "cn=Directory Manager" ldap://server1.example.com repl-agmt status --suffix="dc=example,dc=com" example_agreement
    使用できるステータスの詳細は『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス』 の付録 レプリカ合意の状況 を参照してください。