ssl - 如何使用 unboundid ldap 监听器在端口 636 上监听 ldap 客户端请求

标签 ssl unboundid-ldap-sdk

我已经创建了一个测试环境。我有一个 ldap 客户端、ldap 监听器(作为 ldap 代理)和一个 ldap 服务器。 Ldap 客户端将 ldap 请求发送到端口 389 (SSL) 上的 ldap 代理。 Ldap 代理解码 ldap 请求并将它们转发到端口 389 上的 ldap 服务器。代理成功将ldap服务器的回复转发给ldap客户端。

我在 ldap 服务器上创建了 SSL 证书。而这次我测试了ldap客户端向389端口(SSL)上的ldap代理发送ldap请求。 Ldap 代理将请求转发到端口 636 上的 ldap 服务器。代理成功将 ldap 服务器的回复转发给 ldap 客户端。

但是当我尝试在双方都使用 SSL 时出现问题。我是说

ldap client (port 636) -> ldap proxy (port 636) -> ldap server (port 636)

我的客户抛出异常

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

我正在使用 unboundid ldap sdk 和 LdapDebugger 示例作为 ldap 代理。如何配置 ldaplistener 以接受 SSL 加密请求(端口 636)?

提前致谢...

最佳答案

如果您使用 LDAP SDK 提供的 ldap-debugger 工具,它目前只支持 SSL 与后端服务器通信,但在与客户端通信时不支持。也就是说,“--useSSL”选项仅适用于 LDAP 调试器与后端目录服务器之间的通信,而不适用于客户端与 LDAP 调试器之间的通信。然而,因为这可能是一个非常有用的功能,我刚刚提交了一组添加此功能的更改,所以如果您检查并构建最新版本的 LDAP SDK,您会发现 ldap-debugger 工具有一个控制它的新“--listenUsingSSL”参数。

请注意,无论您是使用 ldap-debugger 工具还是通过 Java 代码创建自己的监听器,都需要确保您拥有一个包含将提供给客户端的 SSL 证书的 Java keystore 。如果您使用的 LDAP 服务器是基于 Java 的(例如,随 LDAP SDK 一起提供的内存目录服务器),那么您可能已经有了它。否则,您需要创建一个。如果您只是出于测试目的这样做,自签名证书应该没问题(只要客户端信任它,或者配置为盲目信任所有证书)。

关于ssl - 如何使用 unboundid ldap 监听器在端口 636 上监听 ldap 客户端请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14642355/

相关文章:

asp.net - 在 SSL 终止反向代理后面运行时如何在 IIS 上创建重定向响应?

tomcat - 如何将自己生成的证书安装到Tomcat中

testing - 使用 Spring LDAP 嵌入式服务器运行测试时“地址已在使用”

java - 如何通过 Java 7 设置 UnboundID 和 OpenLDAP 的 objectClass 的多个属性

java - unboundId ldap 限制搜索

java - 具有 SSL 相互身份验证的 Jersey 客户端

java - 设置 SOLR SSL 属性

testing - 如何为 Active Directory 生成企业级测试数据

java - 更改 LDAP 用户密码

google-app-engine - 如何在 Go AppEngine 应用程序中将 TLS 1.2 与 appengine/urlfetch 结合使用