STARTTLS를 사용하는 phpldapadmin

STARTTLS를 사용하는 phpldapadmin

다음 명령을 사용하여 Ubuntu에서 OpenLDAP를 구성하려고 합니다.우분투 서버 가이드. 내 자체 CA 인증서에서 생성된 인증서를 사용하여 부팅 TLS를 활성화했습니다(내부용이므로). 나는 olcSecurity데이터베이스에 강제 TLS를 사용(설정) 했습니다 tls=1. LDAP 클라이언트를 TLS_CACERT내 CA 인증서 경로로 설정하면 /etc/ldap/ldap.confphpLDAPadmin을 제외하고 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 인증서에는 서버의 호스트 이름이 있으며 localhostphpLDAPadmin에서 설정했습니다. 호스트 이름 불일치로 인해 오류가 발생했습니다.

답변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를 시작할 수 없습니다: 연결 오류"를 해결하는 방법.

관련 정보