通过JAVA开发的修改AD用户的工具,修改AD用户密码时报错


今天遇到1个用户反馈的问题,他们通过JAVA开发了一个工具(修改AD用户密码),在此工具中如果将LDAP指向1台辅助DC时就报错,详细信息如下:

问题描述:

=========

通过JAVA开发的修改AD用户密码的工具,LDAP指向1台辅助域控时,修改用户密码报错,JAVA上报错如下:

javax.naming.CommunicationException: simple bind failed:

 

10.10.10.23:636 [Root exception is

 

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]

    

原因分析:

=========

通过以上报错:unable to find valid certification path to requested target大致判断问题出在证书上,通过检查这台辅助域控的事件日志,发现以下报错:

通过JAVA开发的修改AD用户的工具,修改AD用户密码时报错

通过查看证书管理器,发现个人证书的颁发者是wireless,而不是用户企业内搭建的CA企业证书给颁发的,如下图:

通过JAVA开发的修改AD用户的工具,修改AD用户密码时报错

通过以上分析判断是因为通过JAVA开发的工具连接这台辅助DC时找不到有效的证书,导致报错

 

解决方法:

=========

在个人证书中,重新申请1张证书,过程如下 :

  1. 定位到:个人-证书,右键:所有任务—申请新证书

通过JAVA开发的修改AD用户的工具,修改AD用户密码时报错

          2. 在证书注册处,直接点击:下一步

通过JAVA开发的修改AD用户的工具,修改AD用户密码时报错

           3. 在:请求证书处,勾选:域控制器,并点击:属性

通过JAVA开发的修改AD用户的工具,修改AD用户密码时报错

          4. 在域控制器的属性中,定位到:证书颁发机构,勾选我们的企业根CA,如下图:

通过JAVA开发的修改AD用户的工具,修改AD用户密码时报错

          5. 申请完成后,如下图

通过JAVA开发的修改AD用户的工具,修改AD用户密码时报错

           6. 再通过JAVA工具修改AD用户密码,成功



     本文转自ljb_job 51CTO博客,原文链接:http://blog.51cto.com/liujb/1795703,如需转载请自行联系原作者