Невозможно подключиться к Active Directory через LDAPS

Невозможно подключиться к Active Directory через LDAPS

У меня есть DC, работающий на Windows Server 2019, и на нем установлена ​​роль Domain Services. У меня есть многоуровневый CA, настроенный в том же домене с использованием роли AD CS (корневой выключен, промежуточный выключен, выдающий включен и присоединен к домену).

У меня возникли проблемы с подключением сторонних клиентов (т. е. машин, не присоединенных к домену, и/или веб-приложений) к BIND через LDAPS/636. Они прекрасно работают через LDAP/389, а некоторые работают с StartTLS, хотя это не всегда возможно, и я предпочитаю использовать правильный LDAPS.

Я сгенерировал сертификат для сервера AD и убедился, что использовал его FQDN в теме сертификата, а также включил его имя хоста DNS и IP-адрес в качестве SAN, чтобы охватить все базы. Я также убедился, что в расширении Enhanced Key Usage выбрано «Server Authentication».

Я еще не проверил это, так как у меня нет удаленного доступа к среде, но предположим, что сертификат был сгенерирован с использованием Schannel CSP согласно документации Microsoft. Сертификат подписан правильным выдающим CA, и у клиентов установлена ​​вся цепочка CA, и они могут проверить сертификат AD локально (если я экспортирую сертификат из AD и скопирую его на один из клиентов)

Вот где все становится странным: если я захожу на сервер AD, открываю ldp.exe, я могу подключиться через LDAPS/636 с использованием SSL и Host supports SSL, SSL cipher strength = 256 bitsпоявляется в представлении вывода/консоли. Однако, если я захожу на один из клиентов — скажем, машину Linux — и пытаюсь подключиться с помощью openssl:

openssl s_client -showcerts -state -connect <AD_FQDN>:636

Я не получаю сертификат; вместо этого я получаю это (мне пришлось записать это, а не копировать/вставлять из-за характера сети, поэтому могут быть небольшие неточности):

CONNECTED (00000003)
write: errno = 104
---
no peer certificate available
---
No client cert CA names sent
---
SSL handshake has read 0 bytes and written 324 bytes
Verification: OK
---
<snip>

Действительно, если я пытаюсь настроить клиент на использование LDAPS для аутентификации, мне еще предстоит заставить его работать. Обычно я вижу что-то вроде этой бесполезной ошибки: SSL_Certificate error: Connection closed by peerкоторая по моему опыту обычно указывает на проблему проверки/доверия сертификата (что имело бы смысл, если бы клиент даже не получал сертификат для проверки). Некоторые другие клиенты еще менее полезны и просто говорят "Failed to BIND to LDAP server"

DC определенно прослушивает порт 636, и я могу подключиться к нему извне с клиентов (т.е. не только по петле внутри машины DC), что я проверил с помощью netcat.

nc -vz <AD_FQDN> 636

Есть ли какие-нибудь идеи относительно того, что может быть причиной этой проблемы?

решение1

Оказывается, наш брандмауэр проводил проверку приложений и разрывал SSL-соединение. Отключение проверки приложений решило мои проблемы.

Связанный контент