LDP SSL 端口 636 有效 - ldaps:// 无效

use*_*561 5 windows-server-2008 ssl active-directory ldap

我正在尝试在 Server 2008 R2 上使用带有 ssl 的 ldap。一切就绪,我可以使用 ldp.exedomain.example.org通过 ssl 复选框连接到端口 636。这是在本地服务器本身上。

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

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

* 编辑 *

有效的命令:

ldapsearch -x -b "dc=XX,dc=example,dc=org" -D "user@example.org" -H ldap://XX.example.org -W '(&(proxyAddresses=smtp*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'
Run Code Online (Sandbox Code Playgroud)

不起作用的命令:

ldapsearch -x -b "dc=XX,dc=example,dc=org" -D "user@example.org" -H ldaps://XX.example.org:636 -W '(&(proxyAddresses=smtp*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'
Run Code Online (Sandbox Code Playgroud)

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

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

Rya*_*ger 2

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

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

一些快速的谷歌搜索表明您可以在 ldap.conf 中设置一个名为 TLS_CACERT 的选项或一个名为 LDAPTLS_CACERT 的等效环境变量,您可以指向包含环境中任何/所有 CA 证书(base64 编码)的文件。

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

openssl x509 -inform der -in cacert.crt -out cacert.pem
Run Code Online (Sandbox Code Playgroud)