configurationJBoss AS 5和LDAP

基本上我有一个应用程序,位于需要连接到LDAP服务器的JBoss。 (操作系统是Windows XP专业版)我用run.bat -c all -b 192.168.1.1启动了JBoss。

没有SSL连接到LDAP服务器没有问题。 这个问题只在使用SSL设置LDAP服务器时出现,我无法连接到LDAP服务器。 以下是错误消息。

javax.naming.CommunicationException:简单绑定失败:192.168.1.100:636 [根exception是javax.net.ssl.SSLException:java.lang.RuntimeException:意外的错误:java.security.InvalidAlgorithmParameterException:trustAnchors参数必须是非空的]

我有谷歌关于configurationJBoss和LDAP,偶然发现http://docs.jboss.org/jbportal/v2.6.2/referenceGuide/html/ldap.html 。 我真的需要一个JBoss Portal来设置LDAP吗?

有谁能帮我解决这个问题吗? 我错过了JBoss上的任何configuration?

任何build议将不胜感激。 提前谢谢了。

凯文

我认为您需要将受信任的根证书(可能还有任何中间证书)导入到JBoss正在使用的Java密钥库中。 (在Linux上运行时,只有我运行JBoss,它使用Tomcat来运行JBoss)。

我不确定默认的Java密钥存储在Tomcat的哪个位置。 您可以从任何Java JDK安装中使用keytool ,并以这种方式导入受信任的根。 密钥库密码应该是“默认”的,因为可信根公钥没有任何秘密。

示例Keytool语法可能是:

keytool -importcert -keystore Path/to/store -storepass Password (Usually default or changeit) -alias Something -file FileWithPublicKey

要获得可信根,一个简单的方法是,如果HTTP接口使用相同的证书。 但我想IE会让你试试ldaps:// serverIP /然后在带锁的图标上,可以看到证书的详细信息。

有一个authentication链的标签。 最重要的是签署这个证书的CA(也就是我们需要信任的根,使它成为一个受信任的根)。

如果这一切太过分了,那么这是一个有趣的把戏! 获取600K基于Java的LDAP浏览器(称为LBE)并删除本地文件lbecacert然后运行LDAP浏览器,在启用SSL的情况下为您的LDAP服务器进行configuration,当您第一次连接它时,将获得受信任的根,提示您信任它曾经,永远或永远不会。 select始终,然后退出。

新创build的lbecacert文件现在只有一个可信根。 可爱呃? 我使用这个时,我很懒,它工作正常。

Tomcat cacerts应该在哪里? 那么在你的JVM安装,lib / security中可能已经足够了,把可信根加到那里的cacerts,或者用这个replace那个文件(这不是最好的select,因为你可能需要一些默认的受信任的根)。