weblogic密码修改|密码重置
背景,某客户weblogic漏洞扫描发现console登录的weblogic用户存在弱口令,需要进行密码加固,正常流程如下:
- 先用旧密码登录web管理控制台(默认7001端口),在里面进行weblogic密码修改。
- 修改完成后需要对配置文件中的密码也进行修改,先修改Adminserver,再修改managerserver。
- 以上这样正常操作密码基本就能重置了。
但实际操作过程中可能就会遇到坑,一次一共遇到3个,我简单说明一下,也让后面的人尽量少走弯路。
坑1、管理控制台密码有可能会被写死在bin/setdomainenv.sh里面或者startWeblogicserver.sh里面,如果直接改boot配置文件是不会生效的,需要删除这2个地方写死的用户密码配置。
坑2、启动过程中发现控制台加载非常慢,一直转圈圈,通过jstack进程发现是卡在java random上面,触发了java随机数的Bug,可以通过修改java.security解决,改为:securerandom.source=file:/dev/./urandom,主要修改 /./urandom 这里。
坑3、管理控制台密码修改成功,Adminserver也能正常启动和登录,但managerServer启动死活报密码错误,密码这里是正确的,boot中的密码也未进行加密,managerServer的日志显示就是密码认证被拒绝,这个问题解决的办法是删除managerServer下面的data文件夹或里面的缓存数据文件,建议直接mv data data_old,再去启动managerServer,正常启动,未报密码错误。
在分析这个问题时走了些弯路,期初一直以为是密码设置复杂度有问题,导致weblogic识别不了,后反反复复试了几次发现不是这个问题,最后想直接通过找回密码的方式重置密码试试,重置过程中发现AdminServer也启不来了,也是报密码认证被绝句,查看之前的笔记发现要删除AdminServer下面的data文件夹,受这个启发,才反应过来,managerServer也是需要删除这个缓存数据文件,最终解决问题。
附weblogic密码重置操作方法,网上有的人写的很复杂, 很难看懂,看懂了可能都不会操作,或操作失误无效果。
⚠️在操作前请先对所有需要操作的目录进行备份,因为随时可能产生误操作,有备份就算出错了也能在第一时间进行回滚。谨记。
# 进入安全目录
cd /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/security
#重置admin密码,weblogic/weblogic
#下面这一条命令需要执行上一步的cd到security目录,因为新生成的文件是要替换里面的第一个安全文件,也可以直接指定目标目录。
java -classpath /home/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.jar weblogic.security.utils.AdminAccount weblogic weblogic .
#或者
java -classpath /home/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.jar weblogic.security.utils.AdminAccount weblogic weblogic /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/security
# 重命名data目录,这一步一定要做,不做有可能出现密码认证失败
cd /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/
mv data data_old 或者删除data目录,对业务无影响
注意,java -classpath最后面有个逗号,这是表示生成的文件存在当前目录,会覆盖security下面第一个安全认证文件,操作前要先备份。