Apache 2.2.17 (Windows Server 2008) を介して ldaps を動作させようとしています。ldap (プレーン テキスト) を使用すると、構成は正常に動作します。
LDAPTrustedGlobalCert CA_DER C:/wamp/certs/Trusted_Root_Certificate.cer
LDAPVerifyServerCert Off
<Location />
AuthLDAPBindDN "CN=corpsvcatlas,OU=Service Accounts,OU=u00958,OU=00958,DC=hca,DC=corpad,DC=net"
AuthLDAPBindPassword ..removed..
AuthLDAPURL "ldaps://gc-hca.corpad.net:3269/dc=hca,dc=corpad,dc=net?sAMAccountName?sub"
AuthType Basic
AuthName "USE YOUR WINDOWS ACCOUNT"
AuthBasicProvider ldap
AuthUserFile /dev/null
require valid-user
</Location>
安全のために CA_DER 以外の暗号化オプションも試してみましたが、うまくいきませんでした。
最後に、Apache tomcat でもこれが必要でした。tomcat では、tomcat JRE を使用し、次のような行を実行しました。
keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias mycert -file Trusted_Root_Certificate.cer
上記の行を実行した後、LDAP は Tomcat 経由で正常に動作しました。これにより、証明書が正常であることがわかります。
更新: ldaps の代わりに ldap を使用すると正常に動作するため、両方の ldap モジュールがオンになっています。
git clone を実行すると、次のエラーが返されます:
C:\Temp>git clone http://eqb9718@localhost/git/Liferay.git
Cloning into Liferay...
Password:
error: The requested URL returned error: 500 while accessing http://eqb9718@loca
lhost/git/Liferay.git/info/refs
fatal: HTTP request failed
access.log には次の内容が記載されています:
127.0.0.1 - eqb9718 [23/Nov/2011:18:25:12 -0600] "GET /git/Liferay.git/info/refs service=git-upload-pack HTTP/1.1" 500 535
127.0.0.1 - eqb9718 [23/Nov/2011:18:25:33 -0600] "GET /git/Liferay.git/info/refs HTTP/1.1" 500 535
apache_error.log には何も記録されていません。さらに詳細なログ記録を有効にしたり、より適切なテストを実行したりすることはできますか?
更新 2: Apache サーバーで Wireshark を実行でき、送信接続は明確に確認できますが、他のことはまったくわかりません。私は Wireshark の専門家ではないので、専門用語のように見えます。
また、ldap ブラウザを使用して、マシンから ldaps が正常に動作していることを確認しました。
更新 3: Apache のログをデバッグにすると、次のエラーが返されます。
[3016] auth_ldap authenticate: user eqb9718 authentication failed; URI /git/Liferay.git/info/refs [LDAP: ldap_simple_bind_s() failed][Server Down]
ここで、同じ Server 2008 マシンで、LDAP ブラウザを使用して ldaps 経由でポート 3269 に接続でき、何も「ダウン」していないことに注意してください。このエラーは何を意味しているのでしょうか?
更新 4: openssl s_client -connect gc-hca.corpad.net: 3269 -showcerts を実行した結果は次のとおりです。http://pastebin.com/2yEGN4C1
また、ポート 636 のドメイン コントローラに直接アクセスする openssl コマンドも試しましたが、これは機能し、httpd.conf でも試しましたが、同じエラーが発生します。コントローラ (389 または 636) に直接アクセスする場合は、ou=group、dc=hca などのコンテナーを URL に追加する必要があることに注意する必要があるかどうかはわかりません。そのため、GC の使用が必須になります。他の多くの投稿からこの解決策を見つけたので、mod_ldap のバグに違いありません。
更新 5: サービス経由ではなく手動で Apache を起動したところ、次のような LDAP デバッグが出力されました。
C:\wamp\bin\apache\Apache2.2.17\bin>httpd
[Thu Nov 24 19:19:08 2011] [debug] util_ldap.c(1769): LDAP: SSL verify server ce
rtificate - FALSE
[Thu Nov 24 19:19:08 2011] [debug] mod_authnz_ldap.c(1010): [3144] auth_ldap url
parse: `ldaps://gc-hca.corpad.net:3269/dc=hca,dc=corpad,dc=net?sAMAccountName?s
ub?(objectClass=*)', Host: gc-hca.corpad.net:3269, Port: 3269, DN: dc=hca,dc=cor
pad,dc=net, attrib: sAMAccountName, scope: subtree, filter: (objectClass=*), con
nection mode: using SSL
答え1
信頼LDAPVerifyServerCert Off
されたルート構成が無効になっているため、信頼は問題ではありません。
本当にその数のスペースがあるのでしょうかOU=Service Accounts
?
mod_ldap
有効になっていますかmod_authnz_ldap
?
どちらの問題でもない場合は、エラー ログで何か役に立つ情報を確認できますか?