ここでは、SSL を介した Identity Synchronization for Windows の使用に関する問題のトラブルシューティングの方法について説明します。項目は、次のとおりです。
この章の内容は次のとおりです。
「コネクタと Directory Server または Active Directory 間の SSL に関する問題のトラブルシューティング」
「Directory Server と Active Directory 間の SSL に関する問題のトラブルシューティング」
Identity Synchronization for Windows インストールプログラムでは、コアインストール中に指定された SSL ポートが正しいかどうかは確認できません。コアインストール中に SSL ポートを正しく入力しないと、コアコンポーネントが適切に通信を行うことができなくなります。設定をはじめて保存しようとするまで、問題に気が付かない場合があります。Identity Synchronization for Windows コンソールに次の警告が表示されます。
The configuration was successfully saved, however, the System Manager could not be notified of the new configuration. |
システムマネージャーログには次のエントリが記録されます。
[10/Nov/2003:10:24:35.137 -0600] WARNING 14 example "Failed to connect to the configuration directory because "Unable to connect: (-5981) Connection refused by peer." Will retry shortly." |
これらの警告とエラーメッセージが表示された場合は、コアをアンインストールし、正しい SSL ポート番号で再度インストールします。
コネクタが SSL を介して Directory Server または Active Directory に接続することができない場合は、セントラルエラーログに次のメッセージが表示されます。
[06/Oct/2006:14:02:48.911 -0600] WARNING 14 CNN100 host1 "failed to open connection to ldaps://host2.example.com:636." |
Identity Synchronization for Windows コンソールを開いて、「拡張セキュリティオプションの指定」パネルに移動します。SSL ポートが正しいことを確認します。
デフォルトでは、オンデマンドパスワード同期の実行中、Directory Server は SSL を介して Active Directory と通信しません。SSL によってこの通信を保護するようにデフォルトが上書きされた場合は、『Sun Java System Directory Server Enterprise Edition 6.3 Installation Guide - Ja』の第 3 章「Understanding the Product」の説明に従って、Active Directory の CA 証明書を各マスターレプリカの Directory Server 証明書データベースに追加する必要があります。
Active Directory の CA 証明書を追加しないと、「DSA is unwilling to perform」というエラーが表示され、ユーザーは Directory Server にバインドすることはできません。プラグインのログ isw-hostname /logs/SUBC100/pluginwps_log_0.txt に次のように報告されます。
[06/Nov/2006:15:56:16.310 -0600] INFO td=0x0376DD74 logCode=81 ADRepository.cpp:310 "unable to open connection to Active Directory server at ldaps://host2.example.com:636, reason: " |
これらのエラーが表示された場合は、Active Directory の CA 証明書を Directory Server の証明書データベースに追加してから、Directory Server を再起動する必要があります。
ここでは、Identity Synchronization for Windows での証明書の使用に関するさまざまな問題のトラブルシューティングの方法について説明します。次の項があります。
この章の内容は次のとおりです。
証明書が信頼できないという通知が表示された場合は、セントラル監査ログにアクセスします。たとえば、LDAP サーバーの SSL 証明書が信頼できない場合、このメッセージは次のように記録されます。
[06/Oct/2006:14:02:48.951 -0600] INFO 14 CNN100 host1 "failed to open connection to ldaps://host2.example.com:636, error(91): Cannot connect to the LDAP server, reason: SSL_ForceHandshake failed: (-8179) Peer's Certificate issuer is not recognized." |
この種のエラーが表示された場合、通常は CA 証明書がコネクタの証明書データベースに追加されていないことが原因です。証明書が追加されているかどうかを確認するには、certutil ツールを実行します。このツールの詳細については、「certutil および ssltap ツールについて」を参照してください。
次の例では、証明書データベースに証明書は含まれていません。
# /usr/sunone/servers/shared/bin/certutil -L -d /usr/sunone/servers/ isw-host1/etc/CNN100 Certificate Name Trust Attributes p Valid peer P Trusted peer (implies p) c Valid CA T Trusted CA to issue client certs (implies c) C Trusted CA to certs(only server certs for ssl) (implies c) u User cert w Send warning |
次の例では、証明書データベースに Active Directory CA 証明書のみが含まれています。
# /usr/sunone/servers/shared/bin/certutil -L -d /usr/sunone/servers/ isw-host1/etc/CNN100 Certificate Name Trust Attributes example.com CA C,c, p Valid peer P Trusted peer (implies p) c Valid CA T Trusted CA to issue client certs (implies c) C Trusted CA to certs(only server certs for ssl) (implies c) u User cert w Send warning |
ここに示されているように、CA 証明書の信頼フラグは C,, である必要があります。証明書が存在し、信頼フラグが適切に設定されているのに、まだコネクタが接続できない場合は、証明書を追加したあとにコネクタを再起動したかどうかを確認します。ldapsearch コマンドを使用すると、問題の診断に役立ちます。ldapsearch が証明書を受け入れない場合は、コネクタも受け入れません。たとえば次のように、証明書を信頼できない場合、ldapsearch はその証明書を拒否する可能性があります。
# /usr/sunone/servers/shared/bin/ldapsearch -Z -P /usr/sunone/ servers/isw-host1/etc/CNN100 -h host2 -b "" -s base "(objectclass=*) "ldap_search: Can't contact LDAP server SSL error -8179 Peer's Certificate issuer is not recognized.) |
-P オプションは、SSL 証明書検証に CNN100 コネクタの証明書データベースを使用するように ldapsearch に指示します。コネクタの証明書データベースに正しい証明書を追加したあと、ldapsearch が証明書を受け入れることを確認してから、コネクタを再起動します。
Identity Synchronization for Windows が SSL 接続を確立しようとすると、コネクタは、サーバーのホスト名が SSL ネゴシエーションフェーズ中にサーバーによって提示された証明書内のホスト名と一致することを確認します。ホスト名が一致しない場合、コネクタは接続の確立を拒否します。
Identity Synchronization for Windows 設定ファイルのディレクトリソースのホスト名は、そのディレクトリソースで使用される証明書に組み込まれたホスト名と常に一致する必要があります。
ldapsearch を次のように使用して、ホスト名が一致することを確認できます。
/var/mps/serverroot/shared/bin/ldapsearch.exe -Z -P /var/opt/SUNWisw/etc/CNN100 -3 -h host2.example.com -p 636 -s base -b "" "(objectclass=*)" |
ldapsearch コマンド行に指定したホストと証明書に組み込まれたホスト名が同じでない場合は、次のエラーメッセージが表示されます。
ldap_search: Can't contact LDAP server SSL error -12276 (Unable to communicate securely with peer: requested do main name does not match the server's certificate.) |
ホスト名が一致する場合、ldapsearch コマンドは成功し、ルート DSE の内容が表示されます。
サーバーの証明書が期限切れになると、次のメッセージがログに表示されます。
[06/Oct/2006:14:06:47.130 -0600] INFO 20 CNN100 host1 "failed to open connection to ldaps://host2.example.com:636, error(91): Cannot connect to the LDAP server, reason: SSL_ForceHandshake failed: (-8181) Peer's Certificate has expired." |
このメッセージがログファイルにある場合は、サーバーに新しい証明書を発行する必要があります。