给遇到simple bind failed 192.168.1.×××:636的兄弟们

上次写了一篇给LDAP用户更改密码的文章(主要是引用另外两篇文章的内容),后来发现一个奇怪的现象。我开发使用的AD服务器和自己的WEB服务器以及证书服务器是三合一,按上文所述方法,可以成功更改密码。把程序打成WAR包拿到六楼和十五楼和十六楼的服务器上测试, 它们都使用一台单独的AD,WEB服务器合证书服务器两合一,六楼和十五楼都可正常更改所连接的AD的用户密码,但是偏偏十六楼那个就不行。一直报simple bind failed AD的IP:636错误,郁闷不已。只好到网上狂搜,中间又因为其他的任务间断了一段时间,断断续续找了几个星期了,有说是没有enable ssl,有说是“不支持SSL”,有说是你简单绑定出错了(这不废话嘛),就是没一个确切答复的。加入LDAP的几个交流群,瞎扯了半天,同样没解决办法。在这期间,十五楼的WEB应用配置的AD换成另外一台,结果也出现这个错误,我另外找了台机器配置一遍,同样出错。xj的机器装了WIN2003,让我测试,同样出错,原本自己的机器上安装的WEB应用都可以正常修改密码的,后来居然也有时候没法改,有时候又可以改,十五楼原本不能改密码的那台,昨天下午又突然可以更改密码了,我问其他人,确信没有人更改过AD或者WEB设置,同样的程序,同样的配置,执行同样的功能,怎么会时好时坏呢,这一天是我最郁闷的一天。今天早上突然心血来潮,将证书重新导了一遍,结果更改密码成功了。具体步骤(省略证书服务的安装部分,详情见之前的那篇):1。选择“开始->运行”,输入mmc,进入控制台,选择“添加证书管理单元”菜单项,后面的部分与前面一样,选择“个人->证书”后,将之前在证书服务部分创建的证书选中,然后“所有任务->导出”,重新导出为一个新的cer文件,然后“开始-运行->cmd”进入控制台,用CD命令切换到WEB应用的jdk的bin目录下,输入命令:“keytool -import -keystore 证书名.keystore  -file cer文件的路径”,从而导入一个新的证书,这时我们进入jdk的bin目录能够看到你新命名的那个扩展名为keystore的文件,然后将更改密码的时候设置的证书路径更改为刚刚生成的这个证书的文件路径。重启服务器后,再测试更改密码功能,终于大功告成。然后我依葫芦画瓢,将14那台机器上进行了同样的操作,结果14上的机器也能成功更改密码了。太爽了。我不知道这是不是解决simple bind 失败的准确办法,(或许只是碰巧上述操作导致我更改了系统中的某个设置?),但是如果哪位兄弟遇到同样的问题,尝试一下重新导入证书,或许能解决问题。

你可能感兴趣的:(LDAP)