Open Directory:Replica を使って Open Directory の SSL を有効にする

SSL (Secure Sockets Layer) を有効にすると、Open Directory Master、Replica、および LDAP ディレクトリドメインにアクセスするコンピュータ間で暗号化通信が可能になります。 SSL はデジタル証明書を使って、サーバ用の証明済み ID を提供します。自己署名証明書または認証局から取得した証明書を使うことができます。

Open Directory Master および Replica コンピュータを所定の位置に設置して、次の作業を行います。

  1. Open Directory Master および Replica コンピュータがいずれも SSL 接続に対応していることを確認します。
  2. 自己署名証明書を Master のホスト名に設定されている共通名と一緒に使って Open Directory Master での SSL 暗号化を有効にします。
  3. すべての Replica コンピュータで SSL を有効にします。サーバ管理を使って、対象となるコンピュータのホスト名と同じ共通名を指定して、Replica コンピュータで自己署名証明書を作成します。

ターミナルで次のコマンドを実行します。

Mac OS X Server 10.5 の場合

sudo slapconfig -setldapconfig -ssl on -sslkey [path to SSL key] -sslcert [path to SSL cert] -ssldomain [name of the certificate]

Mac OS X Server 10.6 の場合

sudo slapconfig -setldapconfig -ssl on -sslkey [path to SSL key] -sslcert [path to SSL cert]

(デフォルトでは、サーバ管理は証明書を /etc/certificates に保存します。パスには必ずファイル名を含めてください)

Open Directory Master および Replica から証明書をインストールする

クライアントコンピュータが SSL を使うことができるようにするには、ディレクトリクラスタの各サーバの証明書をクライアントコンピュータにコピーする必要があります。 Open Directory Master および Replica コンピュータから証明書をインストールするには、次の手順を実行してください。

1. 各クライアントコンピュータに「/etc/openldap/certs」ディレクトリを作成します。

2. クライアントコンピュータでターミナルを開いて、次のコマンドを実行し、サーバから証明書を取得します。

openssl s_client -connect [hostname of the server]:636

3. 「---BEGIN CERTIFICATE---」と「---END CERTIFICATE---」に挟まれた行を、「hostname」という名前のファイルにコピーします。

4. 新しい「hostname」ファイルを「/etc/openldap/certs/」に置きます。

5. 次のコマンドを使って証明書をテストできます。

openssl s_client -connect [hostname of the server]:636 -CAfile /etc/openldap/certs/hostname

このコマンドの実行結果は、最終行が「verify return code:0(ok)」と変更されている点を除けば、前回と同様です (前回返されたコードは 18 または 19)。

6. 証明書が 1 つしかない場合 (SSL が有効となっているシングル LDAP サーバなど)、「/etc/openldap/ldap.conf」ファイルに次の行を追加します。

TLS_CACERT /etc/openldap/certs/[サーバのホスト名]

複数の LDAP サーバで SSL が有効になっている場合

サーバを個別に指定するか、すべてのサーバを同じディレクトリに置き、次の手順に従って「ldap.conf」でこれらのサーバを参照するように指定する必要があります。

1. LDAP クラスタのサーバごとに openssl s_client コマンドを次のように使って、これまで通り、証明書を取得する必要があります。

openssl s_client -connect [サーバのホスト名]:636

2. 証明書を取得したら、c_hash (OpenSSL ユーティリティ) を使って証明書をハッシュ形式に変換します。証明書ごとに c_hash を実行すると、/etc/openldap/certs の証明書ファイルの名前を変更するのに使う名前が提示されます。

/System/Library/OpenSSL/misc/c_hash /etc/openldap/certs/hostname

03be8eb2.0 => /etc/openldap/certs/hostname のような出力結果が返されます。

3. ハッシュ名を取得したら、既存の証明書ファイルの名前を手動で変更します。

例:

mv /etc/openldap/certs/hostname /etc/openldap/certs/03be8eb2.0

4. すべての証明書に対して c_hash を実行したら「/etc/openldap/ldap.conf」ファイルを編集して、次の行を追加します。

TLS_CACERTDIR /etc/openldap/certs/

5. ldap.conf ファイルに存在する可能性のある、以前の TLS_CACERTDIR のエントリを取り除きます。

6. 次のように ldapsearch コマンドを使って検証します。

ldapsearch -v -x -H ldaps://[hostname of the server] -b [searchbase]

7. LDAP サーバを設定しようとしたことがある場合は、次のようにディレクトリサービスの再起動が必要になることがあります。

sudo killall DirectoryService
公開日: