Назад | Перейти на главную страницу

LDAPS перенаправляется на 389

Мы пытаемся выполнить привязку LDAPS к серверу, который блокирует 389 с помощью брандмауэра, поэтому весь трафик должен проходить через 636.

В нашей тестовой лаборатории мы подключаемся к тестовой LDAP (расположенной на том же сервере), у которой нет этого межсетевого экрана, поэтому оба порта открыты. Запустив ldp.exe на тестовом сервере, мы генерируем следующую трассировку, которая, кажется, предполагает, что он успешно связывает 636. Однако, если мы отслеживаем трафик с помощью wirehark, весь трафик отправляется на 389 без попытки даже связаться с 636.

Другие инструменты будут связываться только с SSL на 636 или без SSL на 389, что, кажется, предполагает, что он работает правильно, но Wireshark показывает 389.

Только тестовый сервер, который мы используем RawCap для захвата локального кольцевого трафика.

Любые идеи?

0x0 = ldap_unbind(ld);
ld = ldap_sslinit("WIN-GF49504Q77T.test.com", 636, 1);
Error 0 = ldap_set_option(hLdap, LDAP_OPT_PROTOCOL_VERSION, 3);
Error 0 = ldap_connect(hLdap, NULL);
Error 0 = ldap_get_option(hLdap,LDAP_OPT_SSL,(void*)&lv);
Host supports SSL, SSL cipher strength = 128 bits
Established connection to WIN-GF49504Q77T.test.com.
Retrieving base DSA information...
Getting 1 entries:
Dn: (RootDSE)

Я бы начал с проверки сертификата следующим образом.

Как устранить проблемы с подключением LDAP через SSL
http://support.microsoft.com/kb/938703

Шаг 1. Проверьте сертификат аутентификации сервера.

Убедитесь, что сертификат проверки подлинности сервера, который вы используете, соответствует следующим требованиям:

  • Полное доменное имя Active Directory контроллера домена отображается в одном из следующих расположений:

    • Обычное имя (CN) в поле Тема.
    • Расширение альтернативного имени субъекта (SAN) в записи DNS

      • Расширение расширенного использования ключа включает идентификатор объекта аутентификации сервера (1.3.6.1.5.5.7.3.1).
      • Связанный закрытый ключ доступен на контроллере домена. Чтобы убедиться, что ключ доступен, используйте команду certutil -verifykeys.
      • Цепочка сертификатов действительна на клиентском компьютере. Чтобы определить, действителен ли сертификат, выполните следующие действия:
        1. На контроллере домена используйте оснастку «Сертификаты» для экспорта сертификата SSL в файл с именем Serverssl.cer.
        2. Скопируйте файл Serverssl.cer на клиентский компьютер.
        3. На клиентском компьютере откройте окно командной строки.
        4. В командной строке введите следующую команду, чтобы отправить выходные данные команды в файл с именем Output.txt:

      certutil -v -urlfetch -verify serverssl.cer> output.txt
      Откройте файл Output.txt и найдите ошибки.

Шаг 2. Проверьте сертификат аутентификации клиента

В некоторых случаях LDAPS использует сертификат проверки подлинности клиента, если он доступен на клиентском компьютере. Если такой сертификат доступен, убедитесь, что он соответствует следующим требованиям:

  • Расширение расширенного использования ключа включает идентификатор объекта аутентификации клиента (1.3.6.1.5.5.7.3.2).
  • Связанный закрытый ключ доступен на клиентском компьютере. Чтобы убедиться, что ключ доступен, используйте команду certutil -verifykeys.
  • Цепочка сертификатов действительна на контроллере домена. Чтобы определить, действителен ли сертификат, выполните следующие действия:

    1. На клиентском компьютере используйте оснастку «Сертификаты» для экспорта сертификата SSL в файл с именем Clientssl.cer.
    2. Скопируйте файл Clientssl.cer на сервер.
    3. На сервере откройте окно командной строки.
    4. В командной строке введите следующую команду, чтобы отправить выходные данные команды в файл с именем Outputclient.txt:

      certutil -v -urlfetch -verify serverssl.cer> outputclient.txt
      Откройте файл Outputclient.txt и найдите ошибки.

Шаг 3. Проверьте наличие нескольких сертификатов SSL

Определите, соответствуют ли несколько сертификатов SSL требованиям, описанным в шаге 1. Schannel (поставщик Microsoft SSL) выбирает первый действительный сертификат, который Schannel находит в хранилище локального компьютера. Если в хранилище локального компьютера доступно несколько действительных сертификатов, Schannel может не выбрать правильный сертификат. Конфликт с сертификатом центра сертификации (ЦС) может возникнуть, если ЦС установлен на контроллере домена, к которому вы пытаетесь получить доступ через LDAPS.

Шаг 4. Проверьте подключение LDAPS на сервере.
Используйте средство Ldp.exe на контроллере домена, чтобы попытаться подключиться к серверу через порт 636. Если не удается подключиться к серверу через порт 636, просмотрите сообщения об ошибках, которые генерирует Ldp.exe. Также просмотрите журналы средства просмотра событий, чтобы найти ошибки. Для получения дополнительных сведений о том, как использовать Ldp.exe для подключения к порту 636, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Microsoft:

321051 Как включить LDAP через SSL с помощью стороннего центра сертификации
http://support.microsoft.com/kb/321051

Шаг 5. Включите ведение журнала Schannel
Включите ведение журнала событий Schannel на сервере и на клиентском компьютере. Для получения дополнительных сведений о том, как включить ведение журнала событий Schannel, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Microsoft:

260729 Как включить ведение журнала событий Schannel в IIS
http://support.microsoft.com/kb/260729