连接到端口636时LDAP连接错误(“服务器无法运行。”)

时间:2019-03-04 16:44:50

标签: active-directory ldap ldapconnection

我正在尝试使用端口636连接到LDAP,但是出现“服务器无法运行”错误,但是如果我尝试连接到端口389,则它可以正常连接并获取数据

这是我正在使用的代码

min

如果我尝试连接,则会收到错误消息“服务器无法运行”

但是如果我将代码更改为此

NumberRange

或者甚至删除端口(默认情况下,我认为使用389端口)

Range

然后正常连接并获取数据。

任何人都可以帮助我通过636端口连接LDAP,因为在测试服务器环境中我需要通过636连接不能使用389。

1 个答案:

答案 0 :(得分:0)

通过SSL进行LDAP工作需要发生三件事:

  1. 您需要网络连接(没有防火墙)。要对此进行测试,可以使用PowerShell的Test-NetConnection
Test-NetConnection ldap.domain.com -Port 636
  1. 您需要信任证书。如果它使用的是自签名证书,则可能无法从您从中下载证书的计算机信任它。有一些PowerShell代码here可以下载证书,以便您可以检查它。我对其进行了修改以供此处使用(只需将$domain更改为实际域)即可:
$domain = "ldap.domain.com"
$webRequest = [Net.WebRequest]::Create("https://$($domain):636")
try { $webRequest.GetResponse() } catch {}
$cert = $webRequest.ServicePoint.Certificate
$bytes = $cert.Export([Security.Cryptography.X509Certificates.X509ContentType]::Cert)
set-content -value $bytes -encoding byte -path "~\Downloads\$domain.cer"

这会将证书放入“下载”文件夹中。打开.cer文件,它应该立即告诉您计算机上是否信任该文件。如果没有,那么您将需要获取根证书并将其作为受信任的根证书安装在运行此代码的任何计算机上。

  1. 用于连接到AD的标准域名必须与SSL证书完全匹配(或该证书的“主题备用名称”之一)。有时,将以域控制器的名称(例如dc1.domain.com)发布证书,在这种情况下,您必须以特定的DC("LDAP://dc1.domain.com:636")为目标,而不仅仅是域的名称。< / li>