Пошаговое руководство по установке LDAPS на Windows Server

Впервые опубликовано в MSDN 10 апреля 2017 г.
Пошаговое руководство по настройке LDAPS (LDAP через SSL)

Руководство разделено на 3 раздела:

  1. Создание виртуальной машины Windows Server в Azure
  2. Настройка LDAP с использованием AD LDS (службы Active Directory облегченного доступа к каталогам)
  3. Настройка LDAPS (LDAP через SSL)

ПРИМЕЧАНИЕ. Следующие шаги аналогичны для Windows Server 2008, 2012, 2012 R2, 2016. В этой статье мы будем использовать Windows Server 2012 R2.

Создайте виртуальную машину Windows Server в Azure

Создайте виртуальную машину с именем «ldapstest» Windows Server 2012 R2 Datacenter Standard DS12, следуя инструкциям здесь: Создание виртуальной машины Windows с порталом Azure
Подключитесь к ldapstest виртуальной машины с помощью подключения к удаленному рабочему столу.

Настройка LDAP с использованием AD LDS

Теперь давайте добавим AD LDS в нашу виртуальную машину ldapstest
Нажмите Пуск -> Диспетчер серверов -> Добавьте роли и функции. Нажмите “Далее.

Выберите установку на основе ролей или функций. Нажмите “Далее.

Выберите сервер ldapstest из пула серверов. Нажмите “Далее.

Отметьте службы Active Directory облегченного доступа к каталогам из списка ролей и нажмите Далее.

В списке функций ничего не выбирайте – просто нажмите Далее.

Щелкните Далее.

Нажмите «Установить», чтобы начать установку.

После завершения установки нажмите “Закрыть”.

Теперь мы успешно настроили роль AD LDS. Давайте создадим новый экземпляр AD LDS «CONTOSO» с помощью мастера. Щелкните «Запустить мастер установки служб Active Directory облегченного доступа к каталогам» на приведенном выше экране. Затем нажмите “Закрыть”.

Выберите уникальный экземпляр, так как мы настраиваем его впервые.

Введите «CONTOSO» в поле «Имя экземпляра» и нажмите «Далее».

По умолчанию порт LDAP – 389, порт LDAPS 636, выберем значения по умолчанию – жмем Далее.

Создайте новый раздел каталога приложений с именем «CN = MRS, DC = CONTOSO, DC = COM». Нажмите “Далее.

Использование значений по умолчанию для места хранения файлов ADLDS – нажмите «Далее».

Выбор учетной записи сетевой службы для запуска службы AD LDS.

Вы получите быстрое предупреждение о репликации данных. Поскольку мы используем один сервер LDAP, мы можем нажать Да.

Выбор текущего вошедшего в систему пользователя в качестве администратора для экземпляра AD LDS. Нажмите “Далее.

Отметьте все необходимые файлы LDIF для импорта (здесь мы отмечаем все файлы). Нажмите “Далее.

Убедитесь, что все выбраны правильно, а затем нажмите Далее, чтобы подтвердить установку..

После успешной настройки экземпляра нажмите Готово.

Теперь давайте попробуем подключиться к экземпляру AD LDS CONTOSO с помощью ADSI Edit.
Щелкните Пуск -> Найдите «Редактор ADSI» и откройте его.
Щелкните правой кнопкой мыши папку редактирования ADSI (на левой панели) и выберите «Подключиться к ..». Заполните следующие значения и нажмите OK.

Если соединение установлено успешно, мы сможем просматривать каталог CN = MRS, DC = CONTOSO, DC = COM:

Настройка LDAPS (LDAP через SSL)

Сертификат, который будет использоваться для LDAPS, должен удовлетворять следующим трем требованиям:
• Сертификат должен быть действительным для целей аутентификации сервера. Это означает, что он также должен содержать идентификатор объекта аутентификации сервера (OID): 1.3.6.1.5.5.7.3.1
• Имя субъекта или имя в альтернативном имени субъекта (SAN) должно соответствовать полному Полное доменное имя (FQDN) хост-компьютера, например Subject: CN = contosoldaps. Для получения дополнительной информации см. Как добавить альтернативное имя субъекта к защищенному сертификату LDAP.
• Учетная запись хост-компьютера должна иметь доступ к закрытому ключу.

Теперь давайте воспользуемся службами сертификации Active Directory, чтобы создать сертификат, который будет использоваться для LDAPS. Если у вас уже есть сертификат, отвечающий вышеуказанным требованиям, вы можете пропустить этот шаг.

Щелкните Пуск -> Диспетчер сервера -> Добавить роли и компоненты. Нажмите “Далее.

Выберите установку на основе ролей или функций. Нажмите “Далее.

Выберите сервер ldapstest из пула серверов. Нажмите “Далее.

Выберите «Службы сертификации Active Directory» из списка ролей и нажмите «Далее».

Ничего не выбирайте из списка функций и нажмите Далее.

Щелкните Далее.

Отметьте «Центр сертификации» в списке ролей и нажмите «Далее».

Нажмите «Установить», чтобы подтвердить установку.

После завершения установки нажмите “Закрыть”.

Теперь давайте создадим сертификат с помощью мастера настройки AD CS. Чтобы открыть мастер, нажмите «Настроить службы сертификации Active Directory на конечном сервере» на экране выше. Затем нажмите “Закрыть”. Мы можем использовать пользователя azureuser, вошедшего в систему, для настройки служб ролей, поскольку он принадлежит к локальной группе администраторов. Нажмите “Далее.

Выберите центр сертификации из списка ролей. Нажмите “Далее.

Поскольку это локальная установка без домена, мы собираемся выбрать автономный центр сертификации. Нажмите “Далее.

Выбрав корневой ЦС в качестве типа ЦС, нажмите Далее.

Поскольку у нас нет закрытого ключа, давайте создадим новый. Нажмите “Далее.

Выбор SHA1 в качестве алгоритма хеширования. Нажмите “Далее.

ОБНОВЛЕНИЕ: рекомендуется выбрать самый последний алгоритм хеширования с момента обратного отсчета устаревания SHA-1

Имя CA должен соответствовать имени хоста (требование номер 2). Введите «LDAPSTEST» и нажмите «Далее».

Указание срока действия сертификата. Выбираем по умолчанию 5 лет. Нажмите “Далее.

Выбрав расположение базы данных по умолчанию, нажмите “Далее”.

Нажмите “Настроить” для подтверждения.

После успешной/полной настройки. Щелкните Close.

Теперь давайте просмотрим сгенерированный сертификат.

Нажмите «Пуск», выберите «Поиск» «Управление сертификатами компьютеров» и откройте его.

Щелкните «Личные сертификаты» и убедитесь, что сертификат «LDAPSTEST» присутствует:

Теперь выполните третий требование, позвольте нам убедиться, что учетная запись хост-машины имеет доступ к закрытому ключу. С помощью служебной программы Certutil найдите уникальное имя контейнера. Откройте командную строку в режиме администратора и выполните следующую команду: certutil -verifystore MY

Закрытый ключ будет находиться в следующем месте C: ProgramData Microsoft Crypto Keys

Щелкните правой кнопкой мыши C: ProgramData Microsoft Crypto Keys 874cb49a696726e9f435c1888b69f317_d3e61130-4cd8-4288-a344-778464647ff8c и нажмите Свойства> добавить разрешения на чтение для NETWORK SERVICE.

Нам нужно импортировать этот сертификат в хранилище ключей JRE, поскольку наш сертификат CN = LDAPSTEST не подписан ни одним доверенным центром сертификации (CA ), который настроен в вашем хранилище ключей JRE, например, Verisign, Thwate, goDaddy или entrust и т. д. Чтобы импортировать этот сертификат с помощью утилиты keytool, давайте сначала экспортируем этот сертификат как .CER из хранилища сертификатов машины:

Нажмите Пуск -> Найдите «Управление сертификатами компьютеров» и откройте его. Откройте личное, щелкните правой кнопкой мыши сертификат LDAPSTEST и нажмите «Экспорт».

Откроется мастер экспорта сертификатов. Нажмите “Далее.

Не экспортировать закрытый ключ. Нажмите “Далее.

Выберите формат файла X .509 с кодировкой Base-64. Нажмите “Далее.

Экспорт .CER на рабочий стол. Нажмите “Далее.

Нажмите Готово, чтобы завершить экспорт сертификата.

Сертификат теперь успешно экспортирован в «C: Users azureuser Desktop ldapstest.cer».

Теперь мы должны импортировать его в JRE Keystore, используя команду keytool, находящуюся в этом месте:

C: Program Files Java jre1.8.0_92 bin keytool.exe.

Откройте командную строку в режиме администратора. Перейдите в «C: Program Files Java jre1.8.. 0_92 bin »и выполните следующую команду:
keytool -importcert -alias” ldapstest “-keystore” C: Program Files Java jre1.8.0_92 lib security cacerts “-storepass changeit – файл “C: Users azureuser Desktop ldapstest.cer”

Введите «да» в запрос «Доверять этому сертификату» .

После успешного добавления сертификата в хранилище ключей JRE мы можем подключиться к серверу LDAP через SSL.

Теперь давайте попробуем подключиться к серверу LDAP (с SSL и без него) с помощью инструмента ldp.exe.

Строки подключения для

LDAP: \ ldapstest: 389

LDAPS: \ ldapstest: 636

Нажмите Пуск -> Поиск ldp.exe -> Подключение, введите следующие параметры и нажмите ОК для подключения:

Если соединение установлено успешно, вы увидите следующее сообщение в инструменте ldp.exe:

Чтобы подключиться к LDAPS (LDAP через SSL), используйте порт 636 и отметьте SSL. Нажмите ОК, чтобы подключиться.

Если соединение установлено, вы увидите следующее сообщение в инструменте ldp.exe:

ССЫЛКИ

https://technet.microsoft.com/en-us/library/cc770639(v=ws.10)
https://technet.microsoft.com/en-us/library/cc725767(v=ws.10).aspx
http://social.technet.microsoft.com/wiki/contents/articles/2980.ldap- over-ssl-ldaps-certificate ….
https://blogs.technet.microsoft.com/askds/2008/03/13/troubleshooting-ldap-over-ssl/
http ://javarevisited.blogspot.com/2011/11/ldap-authentication-active-directory.html


Отличное руководство! Спасибо!


Я не понимаю, почему он импортирует сертификат в java truststore. Инструмент ldp.exe использует java?


@zhongyi_yang Я тоже хотел бы знать об этом.


Доверенное хранилище java немного странно, если учесть Java. Есть ли другой способ импортировать это?



Как я могу найти сервер LDAP в DNS в Windows?

Для Linux эта команда должна возвращать запись DNS для сервера LDAP

  host -t srv _ldap._tcp.DOMAINNAME  

(найдено в разделе «Аутентификация с Java (Linux) в Active Directory с использованием LDAP БЕЗ имени сервера»)

Как я могу получить то же самое в командной строке Windows с помощью nslookup?

Я пробовал

  nslookup -type srv _ldap._tcp.DOMAINNAME  

(после http ://support.microsoft.com/kb/200525), это правильно?


Вам нужно использовать = после -type :

  nslookup -type = srv _ldap._tcp.DOMAINNAME  

13

В оболочке cmd:

   nslookup устанавливает типы = all_ldap. _tcp  

Улучшите этот ответ
отредактировано 21 мая ’15 в 18:42
BE77Y
2,43833 золота 1616 серебряных знаков2323 бронзовых знака
ответил 21 мая ’15 в 18: 432015-05-21 18:43
  • 5
    Или в одной строке nslookup -type = все _ldap._tcp . Хотел, чтобы я мог перенаправить вывод в файл. – dsz 27 июл. ’16 в 0:58
добавить комментарий |

В оболочке cmd:

  nslookup set types = all_ldap._tcp  

6

Ничего из вышеперечисленного не сработало для у меня каждый раз возникала такая ошибка (я пробовал со всеми возможными комбинациями доменных имен):

*** Неизвестный не может найти _ldap._tcp: Несуществующий домен

Итак, другой поиск Google указал на этот метод:

  nltest/dclist:yourdomain.com

И это приводит к списку различных серверов в моей сети. Надеюсь, это сэкономит еще 2 минуты для кого-то еще.

Улучшить этот ответ
отредактировал 25 октября ’19 в 18:32
Эрик Оппейджк
12366 бронзовых значков
ответ дан 12 апр 2018 в 06:41
  • nltest вернул правильную информацию при использовании “короткого” доменного имени, это короткое имя не разрешилось в запросе nslookup – Эрик Оппейдж, 25 окт., 19:07
добавить комментарий |

Ничего из вышеперечисленного у меня не сработало, у меня каждый раз возникала такая ошибка (я пробовал со всеми комбинациями, которые я могу придумать of с доменными именами):

*** Неизвестный не может найти _ldap._tcp: Несуществующий домен

Итак, другой поиск Google указал на этот метод:

  nltest/dclist:yourdomain.com

И это приводит к списку различных серверов в моей сети. Надеюсь, это сэкономит еще 2 минуты для кого-то еще.


5

Как проверить местоположение службы (SRV ) записи ресурсов локатора для контроллера домена после установки службы каталогов Active Directory.

Используйте Nslookup для проверки записей SRV, выполните следующие действия:

  1. Щелкните Пуск, а затем щелкните Выполнить.

  2. В поле “Открыть” введите cmd .

  3. Введите nslookup и нажмите клавишу ВВОД.

  4. Введите set type = all и нажмите клавишу ВВОД.

  5. Введите _ldap._tcp.dc._msdcs.Domain_Name , где Domain_Name – имя вашего домена, а затем нажмите ENTER.

Улучшите этот ответ
ответил 28 сентября 2015, 18:51
добавить комментарий |

Как проверить записи ресурсов указателя местоположения службы (SRV) для контроллера домена после установки службы каталогов Active Directory.

Используйте Nslookup для проверки записей SRV, выполните следующие действия:

  1. Щелкните Пуск, а затем щелкните Выполнить.

  2. В поле “Открыть” введите cmd .

  3. Введите nslookup и нажмите клавишу ВВОД.

  4. Введите set type = all и нажмите клавишу ВВОД.

  5. Введите _ldap._tcp.dc._msdcs.Domain_Name , где Domain_Name – имя вашего домена, а затем нажмите ENTER.


0

Приглашение Windows cmd по какой-то забытой причине использует «запрос» вместо «тип». Интерактивный nslookup по-прежнему использует “set type = srv”.

nslookup -query = srv _ldap._tcp.DOMAINNAME

EDIT: пока “query” работает, кажется, что я я ошибаюсь на 100%. “тип” тоже работает.

Улучшите этот ответ
отредактировал 9 сентября 2014 в 9:13
ответил 7 сен 2014, в 16:14
  • Вы уверены в этом? nslookup -type = srv _ldap._tcp.DOMAINNAME работает должным образом в Windows. – jscott 7 сен. ’14 в 16: 29
добавить комментарий |

Командная строка Windows использует «запрос» вместо «типа» по какой-то забытой причине. Интерактивный nslookup по-прежнему использует “set type = srv”.

nslookup -query = srv _ldap._tcp.DOMAINNAME

EDIT: пока “query” работает, кажется, что я я ошибаюсь на 100%. “type” тоже работает.


0

” nslookup -query = srv _ldap._tcp.DOMAINNAME “работал у меня, попробовал nslookup -type = srv _ldap._tcp.DOMAINNAME и не работал.

Server 2008 R2

Улучшите этот ответ
ответил 5 июня ’19 в 21:02
добавить комментарий |

“nslookup -query = srv _ldap._tcp.DOMAINNAME” работал у меня, попробовал nslookup -type = srv _ldap._tcp.DOMAINNAME и не сработало.

Server 2008 R2

Оцените статью
futurei.ru
Добавить комментарий