Precisamos conectar nosso script php ao LDAP sobre tls usando um certificado. A conexão LDAP funciona bem sem tls. Mais detalhes aqui /programming/15260252/how-to-use-multiple-tls-certificates-for-ldap-from-php-zend
Conseguimos conectar via tls a partir do Windows usando o Softerra LDAP Browser. Ele nos pediu para instalar um certificado e se confiamos nele.
Meu resultado final é poder me autenticar com LDAP usando TLS do php. Recebi um certificado do tipo .cer. Vem de uma máquina Windows Exchange. Pelo que vejo, o SLES suporta certificados .pem. Então minha pergunta é ...
Q1: Preciso converter de .cer para .pem antes de poder instalar o certificado no cliente (que é o servidor SLES) e, finalmente, Q2: qual é a melhor maneira de instalar esse certificado no servidor para que meu aplicativo php possa acessá-lo e fazer seu trabalho . Observe que no servidor SLES, precisamos nos conectar a diferentes servidores LDAP.
No momento, se corrermos
ldapsearch -H ldaps://localhost:9215 -W
Nós temos
Enter LDAP Password:
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (unable to get local issuer certificate)
Encontrei muitas informações boas aqui http://www.php.net/manual/de/function.ldap-connect.php#36156 e, especialmente, essa frase é importante aos meus olhosOnce you've gotten the ldapsearch tool working correctly PHP should work also.
- SUSE Linux Enterprise Server 11 (x86_64)
- ldapsearch: @ (#) $ OpenLDAP: ldapsearch 2.4.26 (26 de setembro de 2012 13:14:42) $ abuild @ baur: /usr/src/packages/BUILD/openldap-2.4.26/clients/tools (biblioteca LDAP: OpenLDAP 20426)
fonte
Respostas:
Isso significa que o certificado no servidor expirou ou é inválido.
Quanto à solução alternativa, use a
LDAPTLS_REQCERT
variável para ignorar o certificado, por exemplo:Caso contrário, você pode importar o certificado e marcá-lo como confiável.
fonte
ldap.conf
arquivo existente para definir oTLS_REQCERT
parâmetro.Não tenho certeza sobre a conversão de pem para cer, mas para fazer com que o ldapsearch use certs sem ldap.conf ou sem as permissões para modificar certs globais, você deve fazer isso:
fonte
Usando
remove a validação de certificado do servidor LDAP. Isso anula a segurança fornecida pelo TLS em primeiro lugar. Não faça isso. Você deve corrigir os certificados, se houver um problema, e fornecer ao cliente LDAP a autoridade de certificação, conforme descrito por tink.
fonte