Включение протокола LDAP через протокол SSL с использованием стороннего центра сертификации
В этой статье описывается, как включить протокол LDAP через протокол SSL с помощью стороннего центра сертификации.
Исходный номер базы знаний: 321051
Итоги
Протокол LDAP используется для чтения и записи в Active Directory. По умолчанию трафик LDAP незащищен. С помощью протокола SSL/TLS можно сделать трафик LDAP конфиденциальным и безопасным. Чтобы активировать LDAP через SSL (LDAPS), необходимо установить отформатированный должным образом сертификат центра сертификации Майкрософт (CA) или сертификат независимого центра сертификации в соответствии с основными положениями данной статьи.
Пользовательский интерфейс для настройки LDAPS отсутствует. Установка действующего сертификата на контроллер домена позволяет средству LDAP прослушивать и автоматически принимать подключения SSL для трафиков LDAP и глобального каталога.
Требования к сертификату LDAPS
Для активации LDAPS нужно установить сертификат, соответствующий следующим требованиям.
Сертификат LDAPS расположен в хранилище личного сертификата локального компьютера (программно известного как хранилище сертификатов компьютера MY).
Примечание.
Если в хранилище служб каталогов NT (NTDS) есть сертификат, контроллер домена использует сертификат в хранилище NTDS.
Закрытый ключ, подходящий для сертификата, хранится в хранилище локального компьютера и соответствует данному сертификату. Усиленная защита закрытого ключа не должна быть активирована.
Расширение улучшенного ключа включает идентификатор объекта (также известный как OID) проверки подлинности сервера (1.3.6.1.5.5.7.3.1).
Полное доменное имя Active Directory контроллера домена (например, dc01.contoso.com) должно отображаться в одном из следующих мест:
- «Общее имя» (CN) в поле «Тема».
- DNS-запись в расширении «Дополнительное имя субъекта».
Сертификат был выдан центром сертификации, которому доверяют и контроллер домена, и клиенты LDAPS. Доверительные отношения устанавливаются путем настройки доверия клиентских компьютеров и сервера корневому центру сертификации, к которому привязывается выпускающий центр сертификации.
Для создания ключа необходимо использовать поставщик службы шифрования (CSP) Schannel.
Создание запроса на сертификат
Для создания запроса на SSL-сертификат можно использовать любую служебную программу или приложение, которые создают действительный запрос PKCS #10. Для создания запроса воспользуйтесь программой Certreq.
Чтобы генерировать соответствующий запрос сертификата X.509 для контроллера домена, программе Certreq.exe необходим текстовый файл команд. Данный файл можно создать с помощью любого текстового редактора в формате ASCII. Сохраните созданный файл с расширением .inf в любой папке на жестком диске.
Для создания запроса на получение подходящего для LDAPS сертификата проверки подлинности сервера выполните следующие действия:
Создайте файл с расширением .inf. Далее приведен пример INF-файла, который может быть использован для создания запроса сертификата.
----------------- request.inf -----------------
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject = "CN=<DC fqdn>" ; замените полное доменное имя контроллера домена
KeySpec = 1
KeyLength = 1024
; Can be 1024, 2048, 4096, 8192, or 16384.
; Larger key sizes are more secure, but have
; a greater impact on performance.
Exportable = TRUE
MachineKeySet = TRUE
SMIME = False
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; this is for Server Authentication
;-----------------------------------------------
Выполните вырезание и вставку сведений из примера файла в новый текстовый файл с именем Request.inf. Укажите полное DNS-имя для контроллера домена в запросе.
Для некоторых сторонних центров сертификации может понадобиться указание дополнительных сведений в параметре "Subject". К таким сведениям относятся адрес электронной почты (E), подразделение (OU), организация (O), населенный пункт или город (L), область или край (S) и страна или регион (C). Данные сведения можно добавить к параметру «Общее имя» (CN) в файле Request.inf. Например:
Subject="E=admin@contoso.com, CN=<DC fqdn>, OU=Servers, O=Contoso, L=Redmond, S=Washington, C=US".
Создайте файл запроса, выполнив следующую команду в командной строке:
certreq -new request.inf request.req
Создается новый файл с именем Request.req. Это файл запроса с кодировкой base64.
Отправьте запрос в центр сертификации. Майкрософт, либо в независимый центр сертификации.
Получите выданный сертификат и сохраните его в виде файла Certnew.cer в папке, где хранится файл запроса, выполнив следующие шаги:
- Создайте новый файл с именем Certnew.cer.
- Откройте файл в программе «Блокнот», вставьте в него зашифрованный сертификат и сохраните файл.
Примечание.
Сохраненный сертификат должен иметь кодировку base64. Некоторые независимые центры сертификации направляют запрашивающей стороне выданный сертификат, зашифрованный в Base64-формате, электронным сообщением.
Примите выданный сертификат, выполнив следующую команду в командной строке:
certreq -accept certnew.cer
Убедитесь, что сертификат установлен в личном хранилище сертификатов на компьютере, выполнив следующие шаги:
- Запустите консоль управления (MMC).
- Добавьте встраиваемый модуль Сертификаты, который управляет сертификатами на локальном компьютере.
- Последовательно разверните узлы Сертификаты (локальный компьютер), Личные и Сертификаты. В хранилище Персональные должен присутствовать новый сертификат. В диалоговом окне Свойства сертификата указывается назначение сертификата Проверка подлинности сервера. Этот сертификат выдан для полного имени компьютера.
Перезапустите контроллер домена.
Дополнительные сведения о создании запроса на сертификат см. в официальной публикации «Подача заявок на сертификаты и управление сертификатами» (Advanced Certificate Enrollment and Management) Чтобы просмотреть этот технический документ, ознакомьтесь с разделом Дополнительная регистрация сертификатов и управление ими.
Проверка подключения LDAPS
После установки сертификата выполните следующие действия, чтобы убедиться, что LDAPS включен.
Запустите средство администрирования Active Directory (Ldp.exe).
В меню Подключение выберите команду Подключить.
Введите имя контроллера домена, к которому необходимо подключиться.
Введите номер порта 636.
Нажмите кнопку ОК.
На правой панели должны отображаться сведения RootDSE, сообщающие об успешном подключении.
Возможные проблемы
Расширенный запрос «Start TLS»
Передача данных LDAPS осуществляется через TCP-порт 636. Взаимодействие LDAPS с сервером глобального каталога осуществляется через TCP-порт 3269. При подключении к порту 636 или 3269 перед обменом трафиком LDAP выполняется согласование SSL/TLS.
Несколько SSL-сертификатов
Schannel (поставщик SSL для корпорации Майкрософт) выбирает первый действующий сертификат, который он находит в хранилище компьютера. Если в хранилище локального компьютера хранится несколько действующих сертификатов, то Schannel может выбрать неподходящий сертификат.
Ошибка кэширования SSL-сертификата, возникающая в системе без пакета обновления 3 (SP3)
При изменении существующего сертификата LDAPS (либо из-за замены старого на новый, либо из-за изменения центра сертификации) необходимо перезагрузить сервер, чтобы Schannel мог использовать новый сертификат.
Усовершенствования
Изначально в этой статье рекомендовалось помещать сертификаты в личное хранилище сертификатов локального компьютера. Хотя эта возможность по-прежнему поддерживается, сертификаты также можно помещать в личное хранилище сертификатов службы NTDS в Windows Server 2008 и более поздних версиях доменных служб Active Directory. Дополнительные сведения о добавлении сертификата в личное хранилище сертификатов службы NTDS см. в разделе Код события 1220 — подключение LDAP по SSL.
Доменные службы Active Directory в первую очередь выполняют поиск сертификатов в этом хранилище, а не в хранилище локального компьютера. Это упрощает настройку доменных служб Active Directory для использования необходимого сертификата. Это связано с тем, что в личном хранилище сертификатов локальных компьютеров может быть несколько сертификатов, и трудно предугадать, какой из них выбран.
Доменная служба Active Directory определяет появление нового сертификата в своем хранилище и обновляет сертификат SSL без перезапуска доменной службы или контроллера домена.
Новая операция rootDse с именем renewServerCertificate может использоваться для ручного запуска AD DS для обновления SSL-сертификатов без необходимости перезапуска AD DS или контроллера домена. Этот атрибут можно обновить с помощью команды adsiedit.msc или импорта изменения в LDAP-файл (Lightweight Directory Interchange Format), используя ldifde.exe. Дополнительные сведения об использовании LDIF для обновления этого атрибута см. в разделе renewServerCertificate.
Наконец, если контроллер домена Windows Server 2008 или более поздней версии находит несколько сертификатов в хранилище, он случайно выберет один из этих сертификатов.
Все эти действия применимы к службе доменов Active Directory в ОС Windows Server 2008 и службе Active Directory облегченного доступа к каталогам 2008 (AD LDS). В службе AD LDS поместите сертификаты в личное хранилище сертификатов для службы, соответствующей экземпляру службы AD LDS, а не для службы NTDS.