Ldap
帶有 STARTTLS 的 phpldapadmin
我正在嘗試使用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