ここでは、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." |
このメッセージがログファイルにある場合は、サーバーに新しい証明書を発行する必要があります。