2012-01-17 3 views
1

У меня возникают проблемы с Windows, чтобы подключиться к защищенному LDAP-серверу, и я вижу одно и то же везде в Интернете без решения, которое до сих пор работало.LDAPS не подключается к PHP

Я пробовал использовать как IIS, так и WAMPSERVER. Я поместил libeay32.dll и ssleay32.dll в свой каталог SYSTEM32 и включил расширение LDAP.

Вот мой код:

putenv('LDAPTLS_REQCERT=never'); 
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); 
$resource = ldap_connect("ldaps://{redacted}/", 636) or die ("Could not connect."); 
ldap_set_option($resource, LDAP_OPT_PROTOCOL_VERSION, 3) 
$bound = ldap_bind($resource, "{redacted}\ldap", "****"); 

echo ldap_error($resource); 

Я получаю Can't contact LDAP server от ldap_error и предупреждения PHP Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in C:\wamp\www\ldapTest.php

Сервер Я пытаюсь подключиться, работает Active Directory, и я подтвердил, что я могу подключиться используя другие инструменты LDAP. Я знаю, что у этого сервера есть проблема с его сертификатом. Используемый мной инструмент LDAP говорит: The server you are trying to connect to is using a certificate which could not be verified! - Issuer certificate not found

Я подозреваю, что плохой сертификат вызывает проблему с привязкой, поэтому я пробовал LDAPTLS_REQCERT = никогда.

ответ

0

Вы можете попытаться изменить следующую строку:

$resource = ldap_connect("ldaps://{redacted}/", 636) 

Чтобы использовать номер порта непосредственно в URI вместо

$resource = ldap_connect("ldaps://{redacted}:636") 

Это было известно, работает, когда другой не будет.

+0

Спасибо за ответ, но, к сожалению, это не сработало для меня. – Sam

1

Я не могу вспомнить, где я нашел эту статью; однако я выяснил, что по умолчанию, даже если вы указываете TLS_REQCERT, он никогда не игнорируется.

То, что я узнал/а затем забыл о и узнал, снова вы должны сделать следующее (для окон машин)

  1. Создайте следующую структуру каталогов на вашем диске с в корень с: \ OpenLDAP \ sysconf (создать две папки)
  2. Внутри папки sysconf создайте текстовый файл с именем «ldap.conf»
  3. В текстовом файле вы создали поставить следующие на первой линии, а затем сохранить «TLS_REQCERT никогда» (Без котировок)
  4. Перезапустите Apache, и теперь он должен работать.

Дайте ему попробовать. и удачи!

+0

Этот шаг по-прежнему требуется с января 2017 года на установках WAMP (конфигурация: Win Server 2008 R2, Apache 2.4.25 Win64 VC14, PHP 7.1.1) – Antoine

Смежные вопросы