У меня в настоящее время есть установка, где пользователи входят в систему веб-сайта с помощью учетных данных LDAP. Это является все внутренним, таким образом, я действительно не забочусь о тонне о сертификатах. Так, в моем /etc/openldap/ldap.conf
файл я имею TLS_REQCERT never
. Прежде, чем добавить, что в файл я всегда получал ошибку Error Binding to LDAP: TLS: hostname does not match CN in peer certificate
. После добавления, что все, казалось, хорошо работало. Однако теперь я нахожу, что через какое-то время, возможно, несколько часов ко дню, логины перестанут работать снова, и я начну получать ту ошибку. Если я перезапускаю апача, все хорошо работает снова некоторое время. Затем ошибка открывается снова. Что могло заставлять это продолжать происходить? Сервер является CentOS 6.5.
Вы должны проверить действительность сертификата, возможно, проблема связана с этой ошибкой:
TLS_REQCERT = никогда не игнорируется, когда срок действия сертификата эмитента истек
Резюме:
Описание проблемы :
Параметр
TLS_REQCERT = никогда
игнорируется, если сертификат сервера до / после срока действия . В этот момент происходит сбой подключения.Номер версии-выпуска выбранного компонента (если применимо):
openldap-2.4.23-15.el6
openldap-2.4.24-3.fc15
Как воспроизводимый:
Настройте сертификаты в slapd, чтобы разрешить TLS / SSL. Сертификат может быть недопустимый (неверный эмитент, неверное имя сервера и т. д.).
Выполнить:
LDAPTLS_REQCERT = never ldapsearch -x -ZZ ...
Выполнение будет успешным, будет использоваться TLS.
Изменить время вашей системы истекло по истечении срока действия сертификата. Выполните ту же команду еще раз. На этот раз команда завершится ошибкой.
Обновление:
Вы отключили проверку сертификата в OpenLDAP ldap.conf
(который должен
применимо и к php-ldap).
Добавьте в свой PHP-код перед ldap_connect, укажите следующее:
putenv('LDAPTLS_REQCERT=never');
Нужна помощь в игнорировании сертификата сервера при привязке к серверу LDAP с использованием PHP
Как решить ldap_start_tls () «Невозможно запустить TLS: ошибка подключения» в PHP ?
Обновление 2:
Другая проблема может заключаться в том, что сервер apache неправильно принимает файл конфигурации ldap.conf
, просмотрите эти ссылки, где описана проблема:
http://php.net/manual/en/function.ldap-connect.php#36156
Надеюсь, это поможет
Это дикий снимок в темноте, поэтому, если он ошибается, я прошу прощения за то, что привел вас в неправильном направлении. Возможно, в вашей службе ldap заканчиваются доступные файловые дескрипторы (каждое сетевое соединение потребляет один FD). На своих серверах ldap я увеличил ограничения по умолчанию:
OVZ-CentOS65[root@ldap1 ~]# more /etc/security/limits.d/ldap.conf
@ldap soft nofile 100000
@ldap hard nofile 200000
Попробуйте добавить это (или отрегулируйте любой файл, который в настоящее время может контролировать ограничения пользователей, групп или процессов для ldap) и перезапустите службу ldap. Посмотрите, сохранятся ли симптомы с apache.