Como fazer o ldapsearch trabalhar no SLES através de tls usando o certificado?

9

Precisamos conectar nosso script php ao LDAP através de tls usando um certificado. A conexão LDAP funciona bem sem tls. Mais detalhes aqui link

Conseguimos conectar via tls do Windows usando o Softerra LDAP Browser. Ele nos pediu para instalar um certificado e se confiamos nele.

Meu resultado final é poder autenticar com o LDAP usando o TLS do php. Eu recebi um certificado do tipo .cer. Vem de uma máquina do Windows Exchange. Pelo que consigo ver, o SLES suporta certificados .pem. Então minha pergunta é ...

P1: Preciso converter de .cer para .pem primeiro antes de poder instalar o certificado no cliente (que é servidor SLES) e finalmente Q2: qual é o melhor maneira de instalar este 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 corremos

ldapsearch -H ldaps://localhost:9215 -W

nós recebemos

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 link e especialmente essa frase é importante aos meus olhos Once 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)
por Radek 18.03.2013 / 23:31

2 respostas

15

Isso significa que o certificado no servidor expirou ou é inválido.

Quanto à solução alternativa, use a variável LDAPTLS_REQCERT para ignorar o certificado, por exemplo:

LDAPTLS_REQCERT=never ldapsearch -D "cn=drupal-test,ou=Services,dc=example,dc=com" -w my_pass -h ldap.example.com -b "ou=People,dc=example,dc=com" -s sub -x -ZZ "(uid=admin)"

Caso contrário, você pode importar o certificado e marcá-lo como confiável.

    
por 17.01.2014 / 17:24
5

Não tenho certeza sobre a conversão de pem para cer, mas para fazer o ldapsearch usar certs sem ter um ldap.conf ou sem as permissões para modificar certificados globais, você deve ser capaz de fazer isso:

env LDAPTLS_CACERT=/path/to/cert ldapsearch
    
por 19.03.2013 / 01:30