- Устранение неполадок LDAP из-за проблем с подключением SSL
- Шаг 1. Проверка сертификата проверки подлинности сервера
- Шаг 2. Проверка сертификата проверки подлинности клиента
- Шаг 3. Проверка нескольких сертификатов SSL
- Шаг 4. Проверка подключения LDAPS на сервере
- Шаг 5. Включить ведение журнала Schannel
- Устранение неполадок с подключениями LDAP с помощью ETW
- Как включить ETW и запустить трассировку
- Завершение сеанса трассировки и отключение трассировки событий
- Значения для флагов трассировки
- Пример
Устранение неполадок LDAP из-за проблем с подключением SSL
В этой статье обсуждаются действия по устранению неполадок с подключением LDAP по SSL (LDAPS).
Применяется к: Windows Server 2003
Исходный номер КБ: 938703
Шаг 1. Проверка сертификата проверки подлинности сервера
Убедитесь, что сертификат проверки подлинности сервера, который вы используете, соответствует следующим требованиям:
Полное доменное имя контроллера домена Active Directory отображается в одном из следующих местоположений:
- Общее имя (CN) в поле Subject.
- Расширение альтернативного имени субъекта (SAN) в записи DNS.
Расширенное расширение использования ключей включает идентификатор объекта проверки подлинности сервера (1.3.3.6.1.5.5.7.3.1).
Связанный закрытый ключ доступен на контроллере домена. Чтобы убедиться, что ключ доступен, используйте certutil -verifykeys команду.
Цепочка сертификатов действительна на клиентский компьютер. Чтобы определить, является ли сертификат допустимым, выполните следующие действия:
На контроллере домена используйте оснастку Сертификаты для экспорта сертификата SSL в файл с именем Serverssl.cer.
Скопируйте файл Serverssl.cer на клиентский компьютер.
На клиентном компьютере откройте окно Командная подсказка.
В командной подсказке введите следующую команду, чтобы отправить вывод команды в файл с именемOutput.txt:
Чтобы следовать этому шагу, необходимо установить средство командной строки Certutil.
Откройте файл Output.txt, а затем поиск ошибок.
Шаг 2. Проверка сертификата проверки подлинности клиента
В некоторых случаях LDAPS использует сертификат проверки подлинности клиента, если он доступен на клиентский компьютер. Если такой сертификат доступен, убедитесь, что сертификат соответствует следующим требованиям:
Расширенное расширение использования ключей включает идентификатор объекта проверки подлинности клиента (1.3.3.6.1.5.5.7.3.2).
Связанный закрытый ключ доступен на клиентский компьютер. Чтобы убедиться, что ключ доступен, используйте certutil -verifykeys команду.
Цепочка сертификатов действительна на контроллере домена. Чтобы определить, является ли сертификат допустимым, выполните следующие действия:
На клиентном компьютере используйте оснастку Сертификаты для экспорта сертификата SSL в файл с именем Clientssl.cer.
Скопируйте файл Clientssl.cer на сервер.
На сервере откройте окно Командная подсказка.
В командной подсказке введите следующую команду, чтобы отправить вывод команды в файл с именемOutputclient.txt:
Откройте файл Outputclient.txt, а затем поиск ошибок.
Шаг 3. Проверка нескольких сертификатов SSL
Определите, соответствуют ли несколько SSL-сертификатов требованиям, описанным в шаге 1. Schannel (поставщик SSL Майкрософт) выбирает первый действительный сертификат, который Schannel находит в локальном хранилище компьютеров. Если в локальном магазине компьютеров доступно несколько допустимых сертификатов, Schannel может не выбрать правильный сертификат. Конфликт с сертификатом сертификационного органа (CA) может возникнуть, если ЦС установлен на контроллер домена, к который вы пытаетесь получить доступ через LDAPS.
Шаг 4. Проверка подключения LDAPS на сервере
Используйте средство Ldp.exe контроллера домена, чтобы попытаться подключиться к серверу с помощью порта 636. Если вы не можете подключиться к серверу с помощью порта 636, см. ошибки, которые Ldp.exe создает. Кроме того, просмотр журналов просмотра событий для поиска ошибок. Дополнительные сведения об использовании Ldp.exe для подключения к порту 636 см. в этой ссылке Как включить LDAP над SSLс помощью стороннего органа сертификации.
Шаг 5. Включить ведение журнала Schannel
Включить ведение журнала событий Schannel на сервере и клиентского компьютера. Дополнительные сведения о том, как включить ведение журнала событий Schannel, см. в журнале Как включить ведение журнала событий Schannelв Windows и Windows Server.
Источник
Устранение неполадок с подключениями LDAP с помощью ETW
трассировка событий для Windows (ETW) может быть важным средством устранения неполадок для служб домен Active Directory Services (AD DS). ETW можно использовать для трассировки обмена данными по протоколуldapмежду клиентами Windows и серверами ldap, включая AD DS контроллеры домена.
Как включить ETW и запустить трассировку
Включение трассировки событий Windows
Откройте редактор реестра и создайте следующий подраздел реестра:
HKEY _ локальный _ компьютер \ система \ CurrentControlSet \ службы \ LDAP \ Трассировка \ * processName*
В этом подразделе processName — это полное имя процесса, который необходимо отследить, включая его расширение (например, «Svchost.exe»).
(Необязательно) В этом подразделе создайте новую запись с именем PID. Чтобы использовать эту запись, назначьте идентификатор процесса в виде значения типа DWORD.
Если указать идентификатор процесса, ETW будет отслеживать только экземпляр приложения с этим ИДЕНТИФИКАТОРом процесса.
Запуск сеанса трассировки
Откройте окно командной строки и выполните следующую команду:
Заполнители в этой команде представляют следующие значения.
- — это произвольный идентификатор, который используется для обозначения сеанса трассировки.
Вы должны будете обращаться к этому имени сеанса позже, когда вы останавливаете сеанс трассировки.
- Указывает файл журнала, в который будут записываться события.
- должно быть одним или несколькими значениями, перечисленными в таблице флаги трассировки.
Завершение сеанса трассировки и отключение трассировки событий
Завершение трассировки
В командной строке выполните следующую команду:
В этой команде используется то же имя, которое использовалось в команде tracelog.exe-Start .
Отключение ETW
- В редакторе реестра удалите подраздел hKey _ Local _ Machine \ System \ CurrentControlSet \ Services \ LDAP \ Tracing \ * processName*.
Значения для флагов трассировки
Чтобы использовать флаг, замените значение флага заполнитель в аргументах команды tracelog.exe-Start .
Можно указать несколько флагов, используя сумму соответствующих значений флагов. Например, чтобы указать флаги _ поиска отладки (0x00000001) и _ кэша отладки (0x00000010), соответствующее значение — 0x00000011.
| Имя флага | Значение флага | Описание флага |
|---|---|---|
| DEBUG_SEARCH | 0x00000001 | Записывает в журнал запросы поиска и параметры, которые передаются в эти запросы. Ответы не регистрируются здесь. В журнал заносятся только запросы поиска. (Используйте DEBUG_SPEWSEARCH , чтобы регистрировать ответы на запросы поиска.) |
| DEBUG_WRITE | 0x00000002 | Записывает в журнал запросы на запись и параметры, которые передаются в эти запросы. Запросы на запись включают в себя операции добавления, удаления, изменения и расширенных операций. |
| DEBUG_REFCNT | 0x00000004 | Записывает данные подсчета ссылок и операции для подключений и запросов. |
| DEBUG_HEAP | 0x00000008 | Записывает в журнал все выделения памяти и выпуски памяти. |
| DEBUG_CACHE | 0x00000010 | Регистрирует активность кэша. Это действие включает в себя добавление, удаление, попаданий, промахов и т. д. |
| DEBUG_SSL | 0x00000020 | Записывает сведения о SSL и ошибки. |
| DEBUG_SPEWSEARCH | 0x00000040 | Записывает все ответы сервера на запросы поиска. Эти ответы включают атрибуты, которые были запрошены, а также все полученные данные. |
| DEBUG_SERVERDOWN | 0x00000080 | Записывает ошибки сервера и подключения. |
| DEBUG_CONNECT | 0x00000100 | Записывает данные, связанные с установлением соединения. Используйте DEBUG_CONNECTION для записи в журнал других данных, связанных с подключениями. |
| DEBUG_RECONNECT | 0x00000200 | Регистрирует действие автоматического повторного подключения. Это действие включает повторные попытки подключения, сбои и связанные ошибки. |
| DEBUG_RECEIVEDATA | 0x00000400 | Регистрирует действия, связанные с получением сообщений с сервера. Это действие включает в себя такие события, как «ожидание ответа от сервера» и ответ, полученный от сервера. |
| DEBUG_BYTES_SENT | 0x00000800 | Записывает в журнал все данные, отправленные клиентом LDAP на сервер. Эта функция по сути ведет журнал пакетов, но всегда записывает в журнал незашифрованные данные. (Если пакет отправляется по протоколу SSL, эта функция записывает в журнал незашифрованный пакет.) Это ведение журнала может быть подробным. Этот флаг, вероятно, лучше всего использовать отдельно или в сочетании с DEBUG_BYTES_RECEIVED. |
| DEBUG_EOM | 0x00001000 | Записывает события, связанные с достижением конца списка сообщений. Эти события включают такие сведения, как «список сообщений удалены» и т. д. |
| DEBUG_BER | 0x00002000 | Записывает в журнал операции и ошибки, связанные с базовыми правилами кодирования (ЛИЧЕСТВО). Эти операции и ошибки включают проблемы с кодированием, проблемами размера буфера и т. д. |
| DEBUG_OUTMEMORY | 0x00004000 | Регистрирует ошибки для выделения памяти. Также регистрирует любые сбои при вычислении требуемой памяти (например, переполнение, которое происходит при вычислении требуемого размера буфера). |
| DEBUG_CONTROLS | 0x00008000 | Записывает данные, относящиеся к элементам управления. Эти данные включают вставленные элементы управления, проблемы, влияющие на элементы управления, обязательные элементы управления в соединении и т. д. |
| DEBUG_BYTES_RECEIVED | 0x00010000 | Записывает все данные, получаемые LDAP-клиентом. Это, по сути, ведение журнала пакетов, но всегда записывает в журнал незашифрованные данные. (Если пакет отправляется по протоколу SSL, этот параметр записывает в журнал незашифрованный пакет.) Этот тип ведения журнала может быть подробным. Этот флаг, вероятно, лучше всего использовать отдельно или в сочетании с DEBUG_BYTES_SENT. |
| DEBUG_CLDAP | 0x00020000 | Записывает события, относящиеся только к протоколу UDP и протоколу LDAP без подключения. |
| DEBUG_FILTER | 0x00040000 | Регистрирует события и ошибки, возникающие при создании фильтра поиска. Примечание . Этот параметр записывает события клиента только во время построения фильтра. Он не регистрирует никаких ответов с сервера о фильтре. |
| DEBUG_BIND | 0x00080000 | Регистрирует события и ошибки привязки. Эти данные включают сведения о согласовании, успешное выполнение привязки, сбой привязки и т. д. |
| DEBUG_NETWORK_ERRORS | 0x00100000 | Записывает общие ошибки сети. Эти данные включают ошибки отправки и получения. Примечание . Если подключение потеряно или сервер недоступен, DEBUG_SERVERDOWN является предпочтительным тегом. |
| DEBUG_VERBOSE | 0x00200000 | Записывает в журнал общие сообщения. Используйте этот параметр для всех сообщений, которые обычно создают большой объем выходных данных. Например, он записывает в журнал такие сообщения, как «конец сообщения», «сервер еще не ответил» и т. д. Этот параметр также полезен для универсальных сообщений. |
| DEBUG_PARSE | 0x00400000 | Записывает в журнал общие события и ошибки сообщений, а также события и ошибки синтаксического анализа пакетов и кодирования. |
| DEBUG_REFERRALS | 0x00800000 | Записывает данные о ссылках и отслеживании ссылок. |
| DEBUG_REQUEST | 0x01000000 | Регистрирует отслеживание запросов. |
| DEBUG_CONNECTION | 0x02000000 | Записывает в журнал общие данные и ошибки подключения. |
| DEBUG_INIT_TERM | 0x04000000 | Записывает в журнал инициализацию и очистку модуля (основная библиотека DLL и т. д.). |
| DEBUG_API_ERRORS | 0x08000000 | Поддерживает ведение журнала неправильного использования API. Например, этот параметр записывает данные в журнал, если операция привязки вызывается два раза в одном соединении. |
| DEBUG_ERRORS | 0x10000000 | Регистрирует общие ошибки. Большинство этих ошибок можно классифицировать как ошибки инициализации модулей, ошибки SSL или ошибки переполнения или потери значимости. |
| DEBUG_PERFORMANCE | 0x20000000 | Записывает в журнал данные о глобальной статистике действий LDAP после получения ответа от сервера на запрос LDAP. |
Пример
Рассмотрим приложение, App1.exe, которое задает пароли для учетных записей пользователей. Предположим, что App1.exe выдает непредвиденную ошибку. Чтобы использовать ETW для диагностики этой проблемы, выполните следующие действия:
В редакторе реестра создайте следующую запись реестра:
_ _ \ \ \ Трассировка LDAP для CurrentControlSet Services \ System \ \ на локальном компьютере (hKey)App1.exe
Чтобы запустить сеанс трассировки, откройте окно командной строки и выполните следующую команду:
После запуска этой команды Debug _ BIND гарантирует, что ETW записывает сообщения трассировки в. \ LDAP. ETL.
Запустите App1.exe и воспроизведите непредвиденную ошибку.
Чтобы прерывать сеанс трассировки, выполните в командной строке следующую команду:
Чтобы другие пользователи не могли выполнить трассировку приложения, удалите запись реестра CurrentControlSet Services для _ локальной _ машины в разделе » \ \ \ \ \ Трассировка LDAP» \ App1.exe «.
Чтобы проверить сведения в журнале трассировки, выполните в командной строке следующую команду:
Источник