次のコマンドを使用してUbuntuでOpenLDAPを設定しようとしています。Ubuntuサーバーガイド。私自身のCA証明書から生成された証明書を使用してブートTLSを有効にしました(内部使用のため)。私はolcSecurity
データベースに強制TLSを使用(設定)しましたtls=1
。 LDAP クライアントをTLS_CACERT
自分の CA 証明書パスに設定すると、/etc/ldap/ldap.conf
phpLDAPadmin を除き、LDAP クライアントは通常サーバーに接続するのに問題はありません。 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に関連しているようではありません。それ自体だからここに尋ねます。
答え1
PEBKACの事例であることがわかりました。 TLS 証明書にはサーバーのホスト名があり、localhost
phpLDAPadmin で設定しました。ホスト名の不一致によりエラーが発生しました。
答え2
上記のMuruの回答で効果があることがわかりました。 /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を起動できません:接続エラー」を解決する方法。