Estou tentando fazer com que o ldaps funcione através do Apache 2.2.17 (Windows Server 2008). Se eu usar ldap (texto simples), minha configuração funciona muito bem.
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>
Também tentei outras opções de criptografia além de CA_DER, apenas por segurança, sem sorte.
Finalmente, eu também precisava disso com o Apache Tomcat. Para o Tomcat usei o Tomcat JRE e executei uma linha como esta:
keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias mycert -file Trusted_Root_Certificate.cer
Depois de fazer a linha acima, o ldaps funcionou muito bem via Tomcat. Isso me permite saber que meu certificado está ok.
Atualização: Ambos os módulos ldap estão ativados, pois usar ldap em vez de ldaps funciona bem.
Quando executo um clone do git, este é o erro retornado:
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 tem isto:
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 não tem nada. Há algum registro mais detalhado que eu possa ativar ou testes melhores para fazer?
Atualização 2: Posso executar o Wireshark no servidor Apache e posso ver claramente a conexão de saída, mas não consigo entender mais nada. Não sou um guru do wireshark, apenas parece um jargão.
Além disso, usei o navegador ldap para verificar se o ldaps está funcionando bem na máquina.
Atualização 3: mudei o log do Apache para depuração e este é o erro voltando:
[3016] auth_ldap authenticate: user eqb9718 authentication failed; URI /git/Liferay.git/info/refs [LDAP: ldap_simple_bind_s() failed][Server Down]
Agora lembre-se de que nesta mesma máquina Server 2008 posso usar o navegador LDAP para conectar via ldaps à porta 3269 e nada está "inativo". O que esse erro está nos dizendo?
Atualização 4: Aqui estão os resultados da execução de openssl s_client -connect gc-hca.corpad.net: 3269 -showcerts:http://pastebin.com/2yEGN4C1
Também tentei o comando openssl indo diretamente para um controlador de domínio na porta 636 que funciona e tentei em meu httpd.conf que produz o mesmo erro. Não sei se é importante observar que quando vou diretamente para um controlador (389 ou 636) tenho que adicionar um container à url como ou=group,dc=hca,etc. Isso torna o uso do GC uma obrigação. Deve ser um bug no mod_ldap, já que encontrei essa solução em muitos outros posts.
Atualização 5: iniciei o Apache manualmente em vez de por meio de um serviço e esta é a depuração do ldap que está sendo impressa:
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
Responder1
Você LDAPVerifyServerCert Off
está tornando inerte a configuração raiz confiável - portanto, a confiança não é um problema.
Existe realmente esse número de espaços OU=Service Accounts
?
E você tem mod_ldap
e mod_authnz_ldap
habilitado?
Se nenhum desses for o problema, você pode verificar se há algo útil nos logs de erros?