Apache + LDAPS の証明書をインポートするにはどうすればいいですか?

Apache + LDAPS の証明書をインポートするにはどうすればいいですか?

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?

どちらの問題でもない場合は、エラー ログで何か役に立つ情報を確認できますか?

関連情報