Ldap

帶有 STARTTLS 的 phpldapadmin

  • September 2, 2018

我正在嘗試使用Ubuntu server guide在 Ubuntu 上配置 OpenLDAP 。我已啟用使用我自己的 CA 證書生成的證書啟動 TLS(因為它是供內部使用的)。olcSecurity我使用(設置為tls=1)在數據庫上強制啟動 TLS 。TLS_CACERT一旦我將 設置為我的 CA 證書的路徑,LDAP 客戶端通常可以毫無問題地將其連接到伺服器/etc/ldap/ldap.conf,除了 phpLDAPadmin。我在 phpLDAPadmin 配置(/etc/phpldapadmin/config.php)中啟用了 TLS:

$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本身無關,所以我在這裡問。

我發現這是一個PEBKAC的案例。TLS 證書具有伺服器的主機名,而我localhost在 phpLDAPadmin 中進行設置。主機名不匹配導致錯誤。

上面穆魯的回答讓我明白了什麼是有效的。我將 /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

引用自:https://unix.stackexchange.com/questions/149344