LDP SSL端口636工程 – ldaps://不

我正在尝试在Server 2008 R2上使用sslldap。 得到它所有设置,并能够连接使用ldp.exe到sslcheckboxdomain.example.org端口636。 这是本地服务器本身。

但是 – 我无法使用SSL和SSL端口636使用ldapsearch连接。没有ssl和端口389使用ldapsearch工作正常。

有任何想法吗? 我的客户需要安装证书吗? 我主要只是想encryptionldap连接。 谢谢你的帮助!

*编辑*

有效的命令:

 ldapsearch -x -b "dc=XX,dc=example,dc=org" -D "[email protected]" -H ldap://XX.example.org -W '(&(proxyAddresses=smtp*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))' 

不起作用的命令:

 ldapsearch -x -b "dc=XX,dc=example,dc=org" -D "[email protected]" -H ldaps://XX.example.org:636 -W '(&(proxyAddresses=smtp*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))' 

我已经尝试了-h的变体,并使用-p来指定端口。

我将如何去从服务器2008安装证书到客户端?

您的客户不需要自己的证书。 他们只需要信任签署LDAP服务器证书的证书颁发机构证书(或证书链)。 您不需要担心本地主机上的这一点,因为默认情况下CA证书已经被信任。

从您的问题来看,LDAP服务器是否也是证书颁发机构,以及是否使用CA证书作为LDAP证书也是不清楚的。 通常,这是两个不同的证书,证书颁发机构位于不同的机器上。

一些快速google'ing表示有一个选项,您可以在ldap.conf中设置名为TLS_CACERT或称为LDAPTLS_CACERT的等效环境variables,您可以指向包含环境中任何/所有CA证书(base64编码)的文件。

如果您的环境中只有一个CA,则应该能够下载其公共证书的base64编码版本。 如果你只能findDER编码的版本,你可以使用openssl将其转换为base64。

 openssl x509 -inform der -in cacert.crt -out cacert.pem 

可悲的是,他的预期行为。 LDAP只是奇怪的方式,至less对于Windows AD。 没有ldaps这样的东西,但是如果你指定了端口号,就会发生encryption。 试试这个命令:

 ldapsearch -x -b "dc=XX,dc=XXX,dc=org" -D "[email protected]" -H ldap://XX.XXX.org:636 -W '(&(proxyAddresses=smtp*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))' 

对于LDAP以外的任何其他任何东西,看起来您要求在SSL的服务默认端口上input纯文本stream量。 LDAP将在这里进行encryption的stream量。

我也不喜欢它,因为这会使validationencryption过程变得exception困难。 随着端口的变化,也许只是通过encryption的端口发送纯文本,但显式的模式/协议,你可以知道这是至less尝试。 显式协议模式还可以在需要时更轻松地在非标准端口上运行。 但不pipe喜不喜欢,都是这样。