Eu descobri que este era um caso de PEBKAC. O certificado TLS tinha o nome do host do servidor, enquanto eu estava configurando localhost
no phpLDAPadmin. A incompatibilidade do nome do host estava causando os erros.
Estou tentando configurar o OpenLDAP no Ubuntu usando o guia do servidor Ubuntu . Eu habilitei o Start TLS com um certificado gerado usando meu próprio certificado de CA (já que é para uso interno). Eu impelei o Start TLS no banco de dados usando olcSecurity
(definido como tls=1
). Os clientes LDAP em geral não têm problemas em conectar o servidor assim que eu definir o TLS_CACERT
para o caminho do meu certificado de CA em /etc/ldap/ldap.conf
, exceto phpLDAPadmin.
Eu habilitei TLS na confiuguração phpLDAPadmin ( /etc/phpldapadmin/config.php
):
$servers->setValue('server','tls',true);
O phpLDAPadmin gera vários erros (selecionados da página de pós-login, postados no final). Alguém sabe como fazer com que o phpLDAPadmin seja legal com o Start TLS ou permitir uma exceção a ele?
Erros:
Array
(
[class] => N/A
[function] => debug_dump
[file] => /usr/share/phpldapadmin/lib/functions.php
[line] => 700
[debug] => Array
(
[Incoming MSG] => Array
(
[title] => Could not start TLS. (My LDAP Server)
[body] => Error: Could not start TLS. Please check your LDAP server configuration.
[type] => error
)
[existing] => Array
(
[0] => Array
(
[title] => Could not start TLS. (My LDAP Server)
[body] => Error: Could not start TLS. Please check your LDAP server configuration.
[type] => error
)
[1] => Array
(
[title] => Authenticate to server
[body] => Successfully logged into server.
[type] => info
)
)
)
)
PHP Debug Backtrace
File /usr/share/phpldapadmin/lib/functions.php (444)
Function error (a:5:{i:0;s:22:"Redirect Loop Detected";i:1;s:4:"no...)
File /usr/share/phpldapadmin/lib/functions.php (701)
Function debug_dump_backtrace (a:2:{i:0;s:22:"Redirect Loop Detected";i:1;b:1;})
File /usr/share/phpldapadmin/lib/ds_ldap.php (560)
Function system_message (a:1:{i:0;a:3:{s:5:"title";s:37:"Could not start TL...)
File /usr/share/phpldapadmin/lib/ds_ldap.php (186)
Function startTLS (a:1:{i:0;i:0;})
File /usr/share/phpldapadmin/lib/ds_ldap.php (354)
Function connect (a:2:{i:0;s:4:"user";i:1;b:0;})
File /usr/share/phpldapadmin/lib/ds_ldap.php (2104)
Function query (a:2:{i:0;a:5:{s:4:"base";s:26:"dc=cse,dc=iitb,dc=a...)
File /usr/share/phpldapadmin/lib/ds_ldap.php (2028)
Function getDNAttrValues (a:3:{i:0;s:26:"dc=cse,dc=iitb,dc=ac,dc=in";i:1;N;i...)
File /usr/share/phpldapadmin/lib/Tree.php (186)
Function getDNAttrValue (a:2:{i:0;s:26:"dc=cse,dc=iitb,dc=ac,dc=in";i:1;s:1...)
File /usr/share/phpldapadmin/lib/Tree.php (62)
Function addEntry (a:1:{i:0;s:26:"dc=cse,dc=iitb,dc=ac,dc=in";})
File /usr/share/phpldapadmin/lib/page.php (227)
Function getInstance (a:1:{i:0;i:1;})
File /usr/share/phpldapadmin/lib/page.php (418)
Function tree (a:0:{})
File /usr/share/phpldapadmin/htdocs/cmd.php (78)
Function display (a:0:{})
Isso foi postado originalmente no Ask Ubuntu, mas não recebeu nenhuma resposta, e eu acho que esse problema não é sobre o Ubuntu per se , então estou perguntando aqui.
Você precisa editar o /etc/ldap/ldap.conf
no servidor e adicionar
TLS_REQCERT never
Esta solução alternativa é publicada aqui Como resolvo ldap_start_tls
()" Não é possível iniciar o TLS: Erro de conexão "no PHP .
A resposta de Muru acima me leva ao que funcionou. Eu mudei esta linha em /etc/phpldapadmin/config.php de ...
$servers->setValue('server','host','ldap://127.0.0.1');
... para ...
$servers->setValue('server','host','ldap://login.example.com');
Depois de reiniciar o apache2, esses erros desapareceram.
No meu caso, este foi o Ubuntu 16.04