A autenticação do Apache + LDAP no Ubuntu diz "Não é possível entrar em contato com o servidor LDAP" enquanto o ldapsearch é perfeito

2

Estou migrando de um servidor apache + LDAP + mysql + php existente para uma nova plataforma de hardware. O servidor antigo está executando o Debian Lenny, o qual eu não tenho documentação de configuração disponível (foi feito pelo sysadmin anterior); O novo servidor está executando o Ubuntu 10.04.2 LTS 32bit.

Depois de instalar o Apache e configurar o cliente LDAP no novo servidor, o ldapsearch para o mestre LDAP (outro servidor dedicado) retorna resultados muito bem. No entanto, ao usar o apache com https, os logs reclamam que "Não é possível contatar o servidor LDAP".

Estou autenticando usando ldaps e posso confirmar que a porta 636 está aberta no mestre LDAP. Não consigo entender por que o apache falharia enquanto o ldapsearch regular está funcionando!

Abaixo está a parte da configuração do virtualhost:

<Directory />
                Options FollowSymLinks
                AllowOverride None
                #AuthLDAPEnabled on
                AuthType Basic
                AuthBasicProvider ldap
                AuthName "Private"
                AuthLDAPURL ldaps://master.ldap.organisation.com:636/ou=people,dc=organisation,dc=com?uid
                AuthzLDAPAuthoritative off
                require valid-user
                AddType application/x-httpd-php .php .phtml
                <IfModule mod_php4.c>
                        php_flag magic_quotes_gpc Off
                        php_flag track_vars On
                        php_value include_path .
                </IfModule>
        </Directory>

Qualquer ajuda / sugestão é muito apreciada!

    
por tw79 14.02.2011 / 05:46

2 respostas

4

Você precisa dizer ao Apache para confiar no certificado do servidor LDAP.

Veja este .

O ldapsearch (e outros binários do ldap *) são do kit de ferramentas do OpenLDAP. O motivo pelo qual o ldapsearch funciona (e o Apache não) é que o administrador de sistema anterior deve ter colocado o certificado que o servidor LDAP está usando (ou o certificado da CA que emitiu o certificado do servidor LDAP) no local que as ferramentas do OpenLDAP procuram. é /etc/openldap/cacerts , mas é um pouco dependente da distribuição.

Ir procurar nesse diretório.

Depois de encontrar o certificado correto, use a diretiva mod_ldap (consulte aqui ) para apontar para ele. Coloque esta diretiva antes da sua configuração LDAP. Por exemplo:

Se for o certificado de cliente do servidor LDAP:

LDAPTrustedGlobalCert CERT_BASE64 /etc/openldap/cacerts/ldap-server.pem

Se for o certificado da autoridade de certificação que assinou o certificado do servidor LDAP:

LDAPTrustedGlobalCert CERT_CA /etc/openldap/cacerts/ldap-cacert.pem

Use a ferramenta de linha de comando OpenSSL para inspecionar o certificado para determinar qual é:

openssl x509 -in /path/to/cert.pem -noout -text
    
por 28.02.2011 / 03:40
0

Existem erros no libgcrypt11 que causam problemas ao usar o GnuTLS 2.10. * ou mais antigos e podem ser resolvidos executando o nscd no cliente LDAP.

sudo apt-get install nscd

Com o GnuTLS 2.11. * ou posterior, o backend de criptografia preferido mudou para nettle. Para o Ubuntu 12.04 veja este relatório de bug:

link

    
por 07.02.2012 / 20:14