Предупреждение: ldap_start_tls () [function.ldap-start-tls]: невозможно запустить TLS: сервер недоступен в /var/www/html/testldap/index.php в строке 13 Ldap_start_tls не удалось
Моя конфигурация выглядит следующим образом
Centos 5.7 PHP версия 5.3.3
php53-ldap настроен. Независимо от того, что я пытаюсь сделать, проблема с starttls дает мне головную боль. Любая помощь будет высоко оценен.
Ну, какое веселое путешествие я провел с этим.
Проблема, с которой вы сталкиваетесь, заключается в том, что ваш компьютер не принимает сертификат сервера как действительный. Простая работа с этим заключается в отключении проверки, которая выполняется в файле ldap.conf или с переменной окружения.
Вы можете отредактировать файл на /etc/openldap/ldap.conf
( c:\openldap\sysconf\ldap.conf
в Windows) или создать его, если он еще не существует, и поместить в него эту строку:
TLS_REQCERT never
… или вы можете создать переменную среды с именем LDAPTLS_REQCERT
со значением never
.
Как только я сделал одно из этих действий, для меня работал следующий скрипт:
<?php // Settings $host = 'server.domain.local'; $port = 389; $user = 'administrator'; $pass = 'password'; // Connect, set options and bind $ds = ldap_connect($host, $port); if (!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) exit('Could not disable referrals'); if (!ldap_set_option($ds, LDAP_OPT_REFERRALS, 0)) exit('Could not disable referrals'); if (!ldap_start_tls($ds)) exit('Could not start TLS'); if (!ldap_bind($ds, $user, $pass)) exit('Bind operation failed'); // A quick list operation to make sure it worked if (!$result = ldap_list($ds, 'dc=domain,dc=local', 'objectClass=*')) exit('List operation failed'); print_r(ldap_get_entries($ds, $result));
Раздражающе, ни putenv('LDAPTLS_REQCERT=never');
ни $_ENV['LDAPTLS_REQCERT'] = 'never';
будет работать – вам нужно либо создать файл конфигурации, либо статически установить переменную.
Если вы хотите проверить сертификаты, вам нужно будет продолжить чтение о том, как правильно настроить OpenLDAP.
Источники для этого:
Установили ли вы PHP -with-ldap [= DIR]?
Также:
Источник .