Включение протокола LDAP через протокол SSL с использованием стороннего центра сертификации

В этой статье описывается, как включить протокол LDAP через протокол SSL с помощью стороннего центра сертификации.

Применяется к: Windows Server 2012 R2
Оригинальный номер базы знаний: 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 сертификата проверки подлинности сервера выполните следующие действия:

  1. Создайте файл с расширением .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.

  2. Создайте файл запроса, выполнив следующую команду в командной строке:

    certreq -new request.inf request.req
    

    Создается новый файл с именем Request.req. Это файл запроса с кодировкой base64.

  3. Отправьте запрос в центр сертификации. Майкрософт, либо в независимый центр сертификации.

  4. Получите выданный сертификат и сохраните его в виде файла Certnew.cer в папке, где хранится файл запроса, выполнив следующие шаги:

    1. Создайте новый файл с именем Certnew.cer.
    2. Откройте файл в программе «Блокнот», вставьте в него зашифрованный сертификат и сохраните файл.

    Примечание.

    Сохраненный сертификат должен иметь кодировку base64. Некоторые независимые центры сертификации направляют запрашивающей стороне выданный сертификат, зашифрованный в Base64-формате, электронным сообщением.

  5. Примите выданный сертификат, выполнив следующую команду в командной строке:

    certreq -accept certnew.cer
    
  6. Убедитесь, что сертификат установлен в личном хранилище сертификатов на компьютере, выполнив следующие шаги:

    1. Запустите консоль управления (MMC).
    2. Добавьте оснастку диспетчера сертификатов, который управляет сертификатами на локальном компьютере.
    3. Последовательно разверните узлы Сертификаты (локальный компьютер), Личные и Сертификаты. В личном хранилище должен быть новый сертификат. В диалоговом окне Свойства сертификата указывается назначение сертификата Проверка подлинности сервера. Этот сертификат выдан для полного имени компьютера.
  7. Перезапустите контроллер домена.

Дополнительные сведения о создании запроса на сертификат см. в официальной публикации «Подача заявок на сертификаты и управление сертификатами» (Advanced Certificate Enrollment and Management) Чтобы просмотреть этот технический документ, ознакомьтесь с разделом Дополнительная регистрация сертификатов и управление ими.

Проверка подключения LDAPS

После установки сертификата выполните следующие действия, чтобы убедиться, что LDAPS включен.

  1. Запустите средство администрирования Active Directory (Ldp.exe).

  2. В меню Подключение выберите команду Подключить.

  3. Введите имя контроллера домена, к которому необходимо подключиться.

  4. Введите номер порта 636.

  5. Нажмите кнопку ОК.

    На правой панели должны отображаться сведения 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.