带有 STARTTLS 的 phpldapadmin

带有 STARTTLS 的 phpldapadmin

我正在尝试使用以下命令在 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:连接错误”

相关内容