Пошаговое руководство по настройке LDAPS (LDAP через SSL)
Руководство разделено на 3 раздела:
- Создание виртуальной машины Windows Server в Azure
- Настройка LDAP с использованием AD LDS (службы Active Directory облегченного доступа к каталогам)
- Настройка 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
В оболочке cmd:
nslookup устанавливает типы = all_ldap. _tcp
-
5Или в одной строке
nslookup -type = все _ldap._tcp
. Хотел, чтобы я мог перенаправить вывод в файл. – dsz 27 июл. ’16 в 0:58
В оболочке cmd:
nslookup set types = all_ldap._tcp
Ничего из вышеперечисленного не сработало для у меня каждый раз возникала такая ошибка (я пробовал со всеми возможными комбинациями доменных имен):
*** Неизвестный не может найти _ldap._tcp: Несуществующий домен
Итак, другой поиск Google указал на этот метод:
nltest/dclist:yourdomain.com
И это приводит к списку различных серверов в моей сети. Надеюсь, это сэкономит еще 2 минуты для кого-то еще.
-
nltest вернул правильную информацию при использовании “короткого” доменного имени, это короткое имя не разрешилось в запросе nslookup – Эрик Оппейдж, 25 окт., 19:07
Ничего из вышеперечисленного у меня не сработало, у меня каждый раз возникала такая ошибка (я пробовал со всеми комбинациями, которые я могу придумать of с доменными именами):
*** Неизвестный не может найти _ldap._tcp: Несуществующий домен
Итак, другой поиск Google указал на этот метод:
nltest/dclist:yourdomain.com
И это приводит к списку различных серверов в моей сети. Надеюсь, это сэкономит еще 2 минуты для кого-то еще.
Как проверить местоположение службы (SRV ) записи ресурсов локатора для контроллера домена после установки службы каталогов Active Directory.
Используйте Nslookup для проверки записей SRV, выполните следующие действия:
-
Щелкните Пуск, а затем щелкните Выполнить.
-
В поле “Открыть” введите cmd .
-
Введите nslookup и нажмите клавишу ВВОД.
-
Введите set type = all и нажмите клавишу ВВОД.
-
Введите _ldap._tcp.dc._msdcs.Domain_Name , где Domain_Name – имя вашего домена, а затем нажмите ENTER.
Как проверить записи ресурсов указателя местоположения службы (SRV) для контроллера домена после установки службы каталогов Active Directory.
Используйте Nslookup для проверки записей SRV, выполните следующие действия:
-
Щелкните Пуск, а затем щелкните Выполнить.
-
В поле “Открыть” введите cmd .
-
Введите nslookup и нажмите клавишу ВВОД.
-
Введите set type = all и нажмите клавишу ВВОД.
-
Введите _ldap._tcp.dc._msdcs.Domain_Name , где Domain_Name – имя вашего домена, а затем нажмите ENTER.
Приглашение Windows cmd по какой-то забытой причине использует «запрос» вместо «тип». Интерактивный nslookup по-прежнему использует “set type = srv”.
nslookup -query = srv _ldap._tcp.DOMAINNAME
EDIT: пока “query” работает, кажется, что я я ошибаюсь на 100%. “тип” тоже работает.
-
Вы уверены в этом?
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” тоже работает.
” nslookup -query = srv _ldap._tcp.DOMAINNAME “работал у меня, попробовал nslookup -type = srv _ldap._tcp.DOMAINNAME и не работал.
Server 2008 R2
“nslookup -query = srv _ldap._tcp.DOMAINNAME” работал у меня, попробовал nslookup -type = srv _ldap._tcp.DOMAINNAME и не сработало.
Server 2008 R2