У меня есть контроллер домена, который имеет Active Directory (AD). Я хочу включить LDAPS на этом AD, так, чтобы я мог получить доступ к AD через безопасное соединение. Я следовал следующему руководству: http://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-certificate.aspx
Я сделал все в "Публикации Сертификата который Аутентификация сервера Поддержек" и "Экспорт Сертификата LDAPS и Импорт для использования с AD DS". Когда я пробую к netstat, я вижу, что порт 636 открыт, но его IP-адрес 0.0.0.0, который, предположительно, означает, что к нему нельзя получить доступ снаружи. Простой LDAP действительно работает, и я могу и соединиться с ним и видеть его в netstat как открытый и для 0.0.0.0 и IP-адрес моего контроллера домена, но я не могу получить доступ к контроллеру домена через LDAPS.
В чем проблема? Я пропустил некоторый шаг в этом руководстве? Что я должен сделать дополнительный? Я протестировал LDAP и соединение LDAPS с Административным средством Active Directory.
Это - вывод, который я получаю из LDP.EXE:
ld = ldap_sslinit("10.165.0.10", 636, 1);
Error 81 = ldap_set_option(hLdap, LDAP_OPT_PROTOCOL_VERSION, 3);
Error 81 = ldap_connect(hLdap, NULL);
Server error: <empty>
Error <0x51>: Fail to connect to 10.165.0.10.
Проблема заключалась в том, что я использовал IP-адрес при попытке подключения, а сертификат был выдан для DNS-имени. Теперь это работает.
Наша компания работала над этим 2 недели. Я прочитал сотни статей по этому поводу. В конце концов, это было несоответствие имени сертификата. Единственное, что обнаружило наше приложение, - это ошибка 81. Худшая часть LDP.exe успешно прошла аутентификацию. Даже наши веб-службы будут правильно аутентифицироваться, но наше приложение, как только оно получит ACK RST от сервера ldap, немедленно выдаст ошибку 81. Мы использовали файлы хоста на сервере Windows, чтобы сопоставить IP-адрес с ожидаемым DNS, и оно начало работать.