如何使用unboundid ldap listener侦听端口636上的ldap客户端请求

时间:2013-02-01 08:33:48

标签: 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客户端(端口636) - > ldap proxy(端口636) - > ldap服务器(端口   636)

我的客户端抛出异常

  

javax.net.ssl.SSLHandshakeException:远程主机关闭连接   在握手期间

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

提前感谢...

1 个答案:

答案 0 :(得分:0)

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

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