LDAPS не соединяется с PHP - PullRequest
       9

LDAPS не соединяется с PHP

2 голосов
/ 17 января 2012

У меня проблемы с использованием Windows для подключения к безопасному серверу LDAP, и я вижу везде одно и то же в сети, но пока что это не помогло.

Я пытался использовать 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 = никогда.

Ответы [ 2 ]

1 голос
/ 09 июня 2015

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

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

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

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

0 голосов
/ 17 января 2012

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

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

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

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

Известно, что это работает, когда другой не будет.

...