Ubuntu 12.04 Certificado SSL autoassinado do LDAP não aceito

6

Estou trabalhando com o Ubuntu 12.04, usando o servidor OpenLDAP. Eu segui as instruções nas páginas de ajuda do Ubuntu e posso me conectar sem segurança. Para testar minha conexão, estou usando ldapsearch como o comando:

ldapsearch -xv -H ldap://ldap.[my host].local -b dc=[my domain],dc=local -d8 -ZZ

Eu também usei:

ldapsearch -xv -H ldaps://ldap.[my host].local -b dc=[my domain],dc=local -d8

Até onde eu sei, configurei meu certificado corretamente, mas não importa o motivo de eu tentar, parece que não consigo ldapsearch aceitar meu certificado auto-assinado.

Até agora, eu tentei:

  • Como atualizar meu arquivo /etc/ldap/ldap.conf :
 BASE    dc=[my domain],dc=local
 URI     ldaps://ldap.[my host].local
 TLS_CACERT      /etc/ssl/certs/cacert.crt
 TLS_REQCERT allow
  • Como atualizar meu arquivo /etc/ldap.conf :
base dc=[my domain],dc=local
uri ldapi:///ldap.[my host].local
uri ldaps:///ldap.[my host].local
ldap_version 3
ssl start_tls
ssl on
tls_checkpeer no
TLS_REQCERT allow
  • Atualizando meu /etc/default/slapd para incluir:

    SLAPD_SERVICES="ldap: /// ldapi: /// ldaps: ///"

  • Várias horas de pesquisa no Google, a maioria das quais resultou na adição do TLS_REQCERT allow

O erro exato que estou vendo é:

ldap_initialize( ldap://ldap.[my host].local )
request done: ld 0x20038710 msgid 1
TLS certificate verification: Error, self signed certificate in certificate chain
TLS: can't connect.
ldap_start_tls: Connect error (-11)
    additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Após várias horas, eu esperava que alguém tivesse visto esse problema e / ou saiba como corrigi-lo. Por favor, deixe-me saber se devo adicionar mais informações, ou se você precisar de mais dados.

    
por MaddHacker 14.06.2012 / 12:49

5 respostas

1

O problema é que a versão do GnuTLS fornecida com o Ubuntu 12.04 usa um back-end de criptografia com defeito.

O GnuTLS deveria ter mudado de usar o gcrypt como o back-end crypto para o nettle, mas existem problemas de licenciamento. Especificamente, algumas licenças GPL permitem vincular-se a versões mais recentes ou antigas da GPL e outras não.

Você pode reconstruir o GnuTLS a partir da fonte configurada com nettle ou hack gcrypt como Howard Chu sugeriu em algum lugar. As instruções sobre o primeiro estão neste relatório de bug.

link

    
por 16.09.2012 / 02:03
8

Defina a variável LDAPTLS_REQCERT como never para ignorar o certificado no servidor que pode estar vencido ou inválido, 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)"

ou verifique o servidor se ele tiver o certificado correto.

    
por 17.01.2014 / 17:26
4

Na máquina cliente, onde você está executando o ldapsearch, você deve ter no ldap.conf

TLS_CACERT /etc/ssl/certs/cacert.crt

Eu copiei o caminho da configuração do seu servidor onde você armazenou o certificado da CA. Copie o certificado de CA do servidor para o cliente no mesmo local que o caminho.

Veja aqui - link

    
por 19.08.2012 / 13:29
2

Tenho esse mesmo problema, meu motivo de falha é usar o LDAP no 12.04 (o pacote slapd é construído com o GNUTLS) junto com o meu certificado que é criado usado openssl (com o script CA.pl)

Solução: Recrie o certificado autoassinado pelo certtool do GNUTLS, então meu LDAP com TLS funcionou.

    
por 23.04.2013 / 10:33
1

Eu me deparei com um problema semelhante - tentando ldapsearch um servidor de diretório LDAPS com um certificado auto-assinado. Aqui está o erro que você recebe do ldapsearch com o nível de depuração -d8:

TLS certificate verification: Error, self signed certificate in certificate chain
TLS: can't connect.
ldap_bind: Can't contact LDAP server (-1)
    additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Eu achei que o servidor já estava configurado com o "TLS_REQCERT try", então eu não queria mudar o ldap.conf do servidor caso ele estivesse configurado e funcionando para outros aplicativos. Descobrimos que existe um arquivo de configuração local '.ldaprc' que é usado para fazer o ldapsearch (e outros utilitários) funcionar sem a configuração global. Isso permitiu que eu substituísse a configuração TLS_REQCERT para se tornar "allow", o que resolveu meu problema de ldapsearch:

#~/.ldaprc
TLS_REQCERT allow

Aqui está a saída com este in-place e -d8:

TLS certificate verification: Error, self signed certificate in certificate chain
TLS: unable to get peer certificate.
... (actual query works)...
    
por 17.04.2014 / 18:12