我正在尝试使用以下命令在 Ubuntu 上配置 OpenLDAPUbuntu 服务器指南。我已使用我自己的 CA 证书生成的证书启用了启动 TLS(因为它供内部使用)。我使用olcSecurity
(设置为)在数据库上强制启动 TLS tls=1
。一旦我将 LDAP 客户端设置TLS_CACERT
为我的 CA 证书的路径/etc/ldap/ldap.conf
,除了 phpLDAPadmin 之外,LDAP 客户端通常在连接服务器时没有问题。我已在 phpLDAPadmin 配置中启用了 TLS ( /etc/phpldapadmin/config.php
):
$servers->setValue('server','tls',true);
phpLDAPadmin 抛出一堆错误(从登录后页面中剔除,发布在最后)。有谁知道如何让 phpLDAPadmin 与 Start TLS 配合良好,或者允许例外?
错误:
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:{})
这最初发布在 Ask Ubuntu 上,但没有收到任何答案,我认为这个问题与 Ubuntu 无关本身,所以我在这里问。
答案1
我发现这是PEBKAC的一个案例。 TLS 证书具有服务器的主机名,而我是localhost
在 phpLDAPadmin 中设置的。主机名不匹配导致了错误。
答案2
穆鲁的上述回答引导我找到了有效的方法。我将 /etc/phpldapadmin/config.php 中的这一行从...更改为
$servers->setValue('server','host','ldap://127.0.0.1');
... 到 ...
$servers->setValue('server','host','ldap://login.example.com');
重新启动 apache2 后,这些错误就消失了。
就我而言,这是 Ubuntu 16.04
答案3
您必须/etc/ldap/ldap.conf
在服务器上编辑并添加
TLS_REQCERT never
此解决方法发布在此处PHP中如何解决ldap_start_tls
()“无法启动TLS:连接错误”。