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

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

Исходная версия продукта:   Windows Server 2012 R2
Исходный номер КБ:   321051

Аннотация

LDAP используется для чтения и записи в Active Directory. По умолчанию трафик LDAP передается незащищаемо. Вы можете сделать трафик LDAP конфиденциальным и безопасным с помощью технологии SSL/Transport Layer Security (TLS). Вы можете включить LDAP через SSL (LDAPS), установив правильно отформатированный сертификат либо из ЦС Майкрософт, либо из сторонного ЦС в соответствии с рекомендациями в этой статье.

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

Требования к сертификату LDAPS

Чтобы включить LDAPS, необходимо установить сертификат, отвечающий следующим требованиям:

  • Сертификат LDAPS расположен в хранилище личных сертификатов локального компьютера (программным образом называется хранилищем сертификатов MY компьютера).

  • Закрытый ключ, который соответствует сертификату, присутствует в хранилище локального компьютера и правильно связан с сертификатом. Закрытый ключ не должен иметь включенную защиту с закрытым ключом.

  • Расширение расширенного использования ключей включает идентификатор объекта проверки подлинности сервера (1.3.6.1.5.5.7.3.1) (также известный как OID).

  • Полное доменное имя Active Directory контроллера домена (например, DC01. DOMAIN.COM) должны отображаться в одном из следующих мест:

    • Общее имя (CN) в поле "Тема".
    • Запись DNS в расширении "Альтернативное имя субъекта".
  • Сертификат был выдан ЦС, который доверяет контроллеру домена и клиентам LDAPS. Доверие устанавливается путем настройки клиентов и сервера на доверие корневому ЦС, которому цепочек выдающих ЦС.

  • Используйте поставщика служб шифрования Schannel (CSP) для создания ключа.

Создание запроса на сертификат

Для создания запроса SSL-сертификата может использоваться любая программа или приложение, создающая допустимый запрос #10 PKCS. Используйте Certreq для формирования запроса.

Certreq.exe требуется файл текстовых инструкций для создания соответствующего запроса сертификата X.509 для контроллера домена. Этот файл можно создать с помощью предпочитаемого текстового редактора ASCII. Сохраните файл как INF-файл в любой папке на жестком диске.

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

  1. Создайте INF-файл. Ниже приводится пример INF-файла, который можно использовать для создания запроса на сертификат.

    ;----------------- request.inf -----------------

    [Версия]

    Signature="$Windows NT$

    [NewRequest]

    Subject = "CN= <DC fqdn> " ; replace with the FQDN of the DC
    KeySpec = 1
    KeyLength = 1024
    ; Может быть 1024, 2048, 4096, 8192 или 16384.
    ; Более крупные размеры ключей являются более безопасными, но имеют
    ; более сильное влияние на производительность.
    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; это для проверки подлинности сервера

    ;-----------------------------------------------

    Cut and paste the sample file into a new text file named Request.inf. В запросе у вас есть полное DNS-имя контроллера домена.

    Некоторым сторонним органам сертификации могут потребоваться дополнительные сведения в параметре Subject. К таким сведениям относятся адрес электронной почты (E), подразделение, организация (O), город или город (L), область или край (S), а также страна или регион (C). Эти сведения можно примедить к имени субъекта (CN) в файле Request.inf. Например:

    Subject="E= admin@contoso.com , CN= , 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. Откройте файл в Блокноте, в paste the encoded certificate into the file, and then save the file.

    Примечание

    Сохраненный сертификат должен быть закодирован как base64. Некоторые сторонние ЦС возвращают выданный сертификат запрашиваемой стороне в виде текста в коде base64 в сообщении электронной почты.

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

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

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

Дополнительные сведения о создании запроса на сертификат см. в следующем документе о регистрации и управлении расширенными сертификатами. Чтобы просмотреть этот документ, см. дополнительные действия по регистрации сертификатов и управлению ими.

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

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

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

  2. В меню "Подключение" щелкните "Подключиться".

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

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

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

    Данные RootDSE должны печататься в правой области, что указывает на успешное подключение.

Возможные проблемы

  • Запуск расширенного запроса TLS

    Связь LDAPS происходит через порт TCP 636. LDAPS-связь с сервером глобального каталога происходит по TCP 3269. При подключении к портам 636 или 3269 SSL/TLS согласовывалось до обмена трафиком LDAP.

  • Несколько SSL-сертификатов

    Schannel, поставщик Microsoft SSL, выбирает первый действительный сертификат, который он находит в хранилище локального компьютера. Если в хранилище локального компьютера доступно несколько действительных сертификатов, Schannel может не выбрать правильный сертификат.

  • Проблема с кэшом сертификатов SSL до sp3

    Если существующий сертификат LDAPS заменен другим сертификатом в процессе обновления или в связи с тем, что выдающая ЦС изменилась, сервер необходимо перезапустить для Schannel, чтобы использовать новый сертификат.

Улучшения

Исходной рекомендацией в этой статье было поместить сертификаты в личное хранилище локального компьютера. Хотя этот параметр поддерживается, вы также можете поместить сертификаты в хранилище личных сертификатов службы NTDS в Windows Server 2008 и более поздних версиях доменных служб Active Directory (AD DS). Дополнительные сведения о добавлении сертификата в хранилище личных сертификатов службы NTDS см. в справке по событию 1220 — LDAP через SSL.

AD DS ищет сертификаты в этом хранилище через хранилище локального компьютера. Это упрощает настройку AD DS для использования нужного сертификата. Это возможно из-за того, что в личном хранилище локальных компьютеров может быть несколько сертификатов, и трудно предсказать, какой из них выбран.

AD DS обнаруживает, когда новый сертификат перенагружается в хранилище сертификатов, а затем запускает обновление SSL-сертификата без перезапуска AD DS или перезапуска контроллера домена.

Новую операцию rootDse с именем renewServerCertificate можно использовать для запуска AD DS вручную обновления SSL-сертификатов без перезапуска AD DS или перезапуска контроллера домена. Этот атрибут можно обновить с помощью adsiedit.msc или импортировать изменения в формате обмена каталогами LDAP (LDIF) с помощью ldifde.exe. Дополнительные сведения об использовании LDIF для обновления этого атрибута см. в renewServerCertificate.

Наконец, если контроллер домена Windows Server 2008 или более поздней версии находит в своем хранилище несколько сертификатов, он автоматически выбирает сертификат, срок действия которого в будущем будет больше всего. Затем, если срок действия текущего сертификата приближается к концу, вы можете выбросить его в хранилище, и AD DS автоматически переключится на его использование.

Все это работает для AD DS Windows Server 2008 и 2008 служб Active Directory облегченного каталога (AD LDS). Для AD LDS поместите сертификаты в личное хранилище сертификатов для службы, которая соответствует экземпляру AD LDS, а не для службы NTDS.