null

AD LDAPs ошибка в TLS

При неудачном подключении к LDAPs  определить причину проблемы со стороны клиента крайне затруднительно по причине "информативности" вывода:

ld = ldap_sslinit("DC.domain", 636, 1);
Error 0 = ldap_set_option(hLdap, LDAP_OPT_PROTOCOL_VERSION, 3);
Error 81 = ldap_connect(hLdap, NULL);
Server error: <empty>
Error <0x51>: Fail to connect to DC.domain.

 

Имея доступ к журналу событий System (Event viewer) на контроллере домена можно определить причину (коих может быть великое множество).
В данной заметке раскажу про часто встречающуюся проблему после конфигурации LDAPS, а именно ошибку аутентификации в Secure Channel (Schannel

Log Name:      System
Source:        Schannel
Date:          21.01.2016 12:28:12
Event ID:      36874
Task Category: None
Level:         Error
Keywords:      
User:          SYSTEM
Computer:      DC.domain
Description:
An TLS 1.2 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.

 

Проблема заключается в том, что по умолчанию TLS 1.2 отключен на стороне сервера.

Конкретно в Вашем случае отключено может быть что угодно (SSL...,TLS....).

Соединение не удается и следом за Event ID:      36874 следует:

Log Name:      System
Source:        Schannel
Date:          21.01.2016 12:28:12
Event ID:      36888
Task Category: None
Level:         Error
Keywords:      
User:          SYSTEM
Computer:      DC.domain
Description:
A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection. The TLS protocol defined fatal error code is 40. The Windows SChannel error state is 1205.

 

Решение

Решением является включение TLS 1.2.

Оперативно это можно выполнить через правку реестра путем создания ключа TLS 1.2\Client\DisabledByDefault в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client\DisabledByDefault


Значение ключа DisabledByDefault должно быть выключено (1).

В случае проблем не с TLS 1.2 действия аналогичны. Более подробно параметры реестра для SCHANNEL можно посмотреть здесь.