Windows server ldap tls

Включение LDAPS на контроллере домена под управлением Windows Server 2008 R2

Исходные данные:

  • организация, использующая в качестве базы данных сотрудников Microsoft Active Directory, базирующуюся на Windows Server 2008 R2 контроллере домена;
  • написанная на php информационная система, поддерживающую протокол LDAP для взаимодействия с MS AD (например, Moodle).

Проблема: при соединении с AD по протоколу LDAP (порт 389) не работает функция php для смены пароля пользователю AD. Решением является переход на SSL-версию протокола — LDAPS (порт 636). На поиск способа включить поддержку LDAPS на контроллере домена было потрачено приличное количество времени, сэкономить которое может помочь данная статья.

Шаг 1, установка служб сертификатов на контроллер домена.

Заходим в панель управления сервером (Start — Administrative Tools — Server Manager). Add Roles — Active Directory Certificate Services — Next — Next — отмечаем Certification Authority Web Enrollment (Add Required Role Services) — Next — Enterprise — Next — Root CA — далее Next до конца.

Шаг 2, запрос на сертификат.

Создаём файл request.inf с текстом:
[Version]
Signature= «$Windows NT$»

[NewRequest]
KeySpec = 1
KeyLength = 1024
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
OID=1.3.6.1.5.5.7.3.2

[Extensions]
2.5.29.17=MDiCFURDNC5sb3JlLnVuaS1kdWJuYS5ydaAfBgkrBgEEAYI3GQGgEgQQhePOUDQ+
_continue_=7Uy5GtDgYOzldA==
Critical=2.5.29.17

Затем выполняем
certreq -new request.inf request.req

Шаг 3, получение сертификата у CA.

Вот тут самое интересное. Если попробовать разместить запрос на сертификат штатным способом, т.е. через MMC snap-in «Certification Authority» или командой
certreq -attrib «CertificateTemplate:DomainController» request.req , получаем ошибку «The DNS name is unavailable and cannot be added to the Subject Alternate name. 0x8009480f», которую обойти никаким способом так и не удалось. Зато сработала выдача сертификата через веб.
Заходим на localhost/certsrv/certrqxt.asp и вставляем в первое поле код из файла request.req; в поле Certificate Template выбираем Web Server. Скачиваем получившийся сертификат по ссылке Download certificate.

Шаг 4, импорт сертификата.

Winkey+R — mmc; нажимаем Ctrl+M, Certificates — Add — Computer Account — Next — Local Computer — Finish — OK. Certificates (local computer) — Personal — Certificates (правой кнопкой) — All Tasks — Import. Указываем файл, сделанный на шаге 3.

Шаг 5, проверка.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Enable LDAP over SSL with a third-party certification authority

This article describes how to enable Lightweight Directory Access Protocol (LDAP) over Secure Sockets Layer (SSL) with a third-party certification authority.

Original product version: В Windows Server 2012 R2
Original KB number: В 321051

Summary

The LDAP is used to read from and write to Active Directory. By default, LDAP traffic is transmitted unsecured. You can make LDAP traffic confidential and secure by using SSL/Transport Layer Security (TLS) technology. You can enable LDAP over SSL (LDAPS) by installing a properly formatted certificate from either a Microsoft certification authority (CA) or a non-Microsoft CA according to the guidelines in this article.

There’s no user interface for configuring LDAPS. Installing a valid certificate on a domain controller permits the LDAP service to listen for, and automatically accept, SSL connections for both LDAP and global catalog traffic.

Requirements for an LDAPS certificate

To enable LDAPS, you must install a certificate that meets the following requirements:

The LDAPS certificate is located in the Local Computer’s Personal certificate store (programmatically known as the computer’s MY certificate store).

A private key that matches the certificate is present in the Local Computer’s store and is correctly associated with the certificate. The private key must not have strong private key protection enabled.

The Enhanced Key Usage extension includes the Server Authentication (1.3.6.1.5.5.7.3.1) object identifier (also known as OID).

The Active Directory fully qualified domain name of the domain controller (for example, DC01.DOMAIN.COM) must appear in one of the following places:

  • The Common Name (CN) in the Subject field.
  • DNS entry in the Subject Alternative Name extension.

The certificate was issued by a CA that the domain controller and the LDAPS clients trust. Trust is established by configuring the clients and the server to trust the root CA to which the issuing CA chains.

Читайте также:  Trusty linux что это

Use the Schannel cryptographic service provider (CSP) to generate the key.

Create the certificate request

Any utility or application that creates a valid PKCS #10 request can be used to form the SSL certificate request. Use Certreq to form the request.

Certreq.exe requires a text instruction file to generate an appropriate X.509 certificate request for a domain controller. You can create this file by using your preferred ASCII text editor. Save the file as an .inf file to any folder on your hard drive.

To request a Server Authentication certificate that is suitable for LDAPS, follow these steps:

Create the .inf file. Following is an example .inf file that can be used to create the certificate request.

Subject = «CN= » ; replace with the FQDN of the DC
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

OID=1.3.6.1.5.5.7.3.1 ; this is for Server Authentication

Cut and paste the sample file into a new text file named Request.inf. Provide the fully qualified DNS name of the domain controller in the request.

Some third-party certification authorities may require additional information in the Subject parameter. Such information includes an e-mail address (E), organizational unit (OU), organization (O), locality, or city (L), state or province (S), and country or region (C). You can append this information to the Subject name (CN) in the Request.inf file. For example:

Subject=»E=admin@contoso.com, CN=, OU=Servers, O=Contoso, L=Redmond, S=Washington, C=US.»

Create the request file by running the following command at the command prompt:

A new file called Request.req is created. It’s the base64-encoded request file.

Submit the request to a CA. You can submit the request to a Microsoft CA or to a third-party CA.

Retrieve the certificate that’s issued, and then save the certificate as Certnew.cer in the same folder as the request file by following these steps:

  1. Create a new file called Certnew.cer.
  2. Open the file in Notepad, paste the encoded certificate into the file, and then save the file.

The saved certificate must be encoded as base64. Some third-party CAs return the issued certificate to the requestor as base64-encoded text in an e-mail message.

Accept the issued certificate by running the following command at the command prompt:

Verify that the certificate is installed in the computer’s Personal store by following these steps:

  1. Start Microsoft Management Console (MMC).
  2. Add the Certificates snap-in that manages certificates on the local computer.
  3. Expand Certificates (Local Computer), expand Personal, and then expand Certificates. A new certificate should exist in the Personal store. In the Certificate Properties dialog box, the intended purpose displayed is Server Authentication. This certificate is issued to the computer’s fully qualified host name.

Restart the domain controller.

For more information about creating the certificate request, see the following Advanced Certificate Enrollment and Management white paper. To view this white paper, see Advanced Certificate Enrollment and Management.

Verify an LDAPS connection

After a certificate is installed, follow these steps to verify that LDAPS is enabled:

Start the Active Directory Administration Tool (Ldp.exe).

On the Connection menu, click Connect.

Type the name of the domain controller to which you want to connect.

Type 636 as the port number.

Click OK.

RootDSE information should print in the right pane, indicating a successful connection.

Possible issues

Start TLS extended request

LDAPS communication occurs over port TCP 636. LDAPS communication to a global catalog server occurs over TCP 3269. When connecting to ports 636 or 3269, SSL/TLS is negotiated before any LDAP traffic is exchanged.

Multiple SSL certificates

Schannel, the Microsoft SSL provider, selects the first valid certificate that it finds in the local computer store. If there are multiple valid certificates available in the local computer store, Schannel may not select the correct certificate.

Pre-SP3 SSL certificate caching issue

If an existing LDAPS certificate is replaced with another certificate, either through a renewal process or because the issuing CA has changed, the server must be restarted for Schannel to use the new certificate.

Improvements

The original recommendation in this article was to put certificates in the Local Machine’s Personal store. Although this option is supported, you can also put certificates in the NTDS Service’s Personal certificate store in Windows Server 2008 and in later versions of Active Directory Domain Services (AD DS). For more information about how to add the certificate to the NTDS service’s Personal certificate store, see Event ID 1220 — LDAP over SSL.

Читайте также:  Realtek hd audio drivers для windows 10 как установить

AD DS preferentially looks for certificates in this store over the Local Machine’s store. This makes it easier to configure AD DS to use the certificate that you want it to use. It’s because there might be multiple certificates in the Local Machines Personal store, and it can be difficult to predict which one is selected.

AD DS detects when a new certificate is dropped into its certificate store and then triggers an SSL certificate update without having to restart AD DS or restart the domain controller.

A new rootDse operation that’s named renewServerCertificate can be used to manually trigger AD DS to update its SSL certificates without having to restart AD DS or restart the domain controller. This attribute can be updated using adsiedit.msc, or by importing the change in LDAP Directory Interchange Format (LDIF) using ldifde.exe. For more information on using LDIF to update this attribute, see renewServerCertificate.

Finally, if a Windows Server 2008 or a later version domain controller finds multiple certificates in its store, it automatically selects the certificate whose expiration date is furthest in the future. Then, if your current certificate is approaching its expiration date, you can drop the replacement certificate in the store, and AD DS automatically switches to use it.

All these work for Windows Server 2008 AD DS and for 2008 Active Directory Lightweight Directory Services (AD LDS). For AD LDS, put certificates into the Personal certificate store for the service that corresponds to the AD LDS instance instead of for the NTDS service.

Включить 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, выполните следующие действия.

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

Subject = «CN= » ; 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

Читайте также:  Список команд для консоли windows

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».

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

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

Отправьте запрос в ЦС. Вы можете отправить запрос в ЦС Майкрософт или сторонний ЦС.

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

  1. Создайте файл Certnew.cer.
  2. Откройте файл в Блокноте, в paste the encoded certificate into the file, and then save the file.

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

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

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

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

Перезапустите контроллер домена.

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

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

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

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

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

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

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

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

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

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

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

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

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.

Оцените статью