Weblogic控制台数据源密码的脚本化修改
第一章、修改Weblogic控制台密码
第1节、涉及密码配置文件
| AdminServer/boot.properties | password |
| 受管服务器/boot.properties | password |
| 域目录/config/config.xml | <node-manager-username>标签 |
| 域目录/security/DefaultAuthenticatorInit.ldift | 密码文件 |
| AdminServer/data | /ldap密码缓存 |
| 守管服务器/boot.properties | /ldap密码缓存 |
第2节、脚本化修改步骤
(1)修改boot.properties
username=用户名
password=明文密码
(2)对明文加密
java -cp /weblogic目录/wlserver/server/lib/weblogic.jar web logic.security.Encrypt password
(3)用加密明文修改config.xml
<node-manaer-username>aes256加密的password</node-manaer-username>
(4)执行密码生效
cd 域目录/security/
java -cp /weblogic目录/wlserver/server/lib/weblogic.jar weblogic.security.utils.AdminAccount weblogic password
(5)处理缓存密码,修改data目录名称
cd /域目录/servers/AdminServer/ mv data olddata cd /域目录/servers/应用Server/ mv data olddata
(6)重启Weblogic管理及受管服务器
sh startWeblogic.sh
sh start应用启动脚本.sh
第3节、示例完整脚本
read -p "输入新密码:" newpassword read -r -p "确认修改吗? [Y/n] " input case $input in [yY] | [yY]) echo "yes" # 修改boot.properties sed -i "/^username=*/cusername=weblogic用户名" /boot.properties目录 sed -i "/^password=*/cpassword=weblogic密码" /boot.properties目录 # 加密 password=$(java -cp /weblogic目录/weblogic.jar weblogic.security.Encrypt $newpasword) # 找到config.xml密码配置航 line=$(grep -n "<node-manager-password-encrypted>" config.xml文件目录 | cut -d ":" -f 1) # 用sed替换 sed ''$line' c\<node-manager-password-encrypted> '$password'</node-manager-password-encrypted>' config.xml文件目录 # 执行密码生效 cd /weblogic域目录/security/ # 可以先备份.ldif文件 # java -cp /weblogic目录/wlserver/server/lib/we logic.jar weblogic.security.utils.AdminAccount weblogic password . # 修改缓存密码 cd /域目录/AdminServer/ mv data old_data cd /域目录/受管Server/ mv data old_data
;;
[nN] | [nN])
echo "No"
;;
*)
echo "Invalid input"
exit
;;
esac
第二章、修改Weblogic控制台密码
第1节、涉及配置文件
| 受管Server/data | /ldap密码缓存 |
| 域目录/config/jdbc/JDBC-....xml | 数据源密码配置文件 |
第2节、修改步骤
(1)对明文加密
java -cp /weblogic目录/wlserver/server/lib/weblogic.jar web logic.security.Encrypt password
(2)用明文密码修改配置文件
<password-encripted>aes256加密后的password</password-encripted>
(3)执行密码生效
cd 域目录/security/
java -cp /weblogic目录/wlserver/server/lib/weblogic.jar weblogic.security.utils.AdminAccount weblogic password .
(4)处理缓存密码,修改data目录名称
cd /域目录/servers/应用Server/
mv data olddata
(5)重启Weblogic受管服务器
sh start应用启动脚本.sh
第3节、示例完整脚本
参照上一节。
第三章、Weblogic密码解密
第1节、释义
weblogic加解密必须在域环境下进行。
相同的明文密码在相同的域环境下加密结果不一致。
相同的密文在不同的域环境下解密也不一致,甚至有的则无法解密。
域目录即domains的下一层由您个性化命名的目录。
第2节、Weblogic解密
2.1、手工步骤
进入wlst.sh所在目录
cd <MIDDLEWARE_HOME>/oracle_common/common/bin
sh west.sh
设置如下参数:
domain="域目录" service=weblogic.security.internal.SerializedSystemIni.getEncryptionService(domain) encryption=weblogic.security.internal.encryption.ClearOrEncryptedService(service)
这里的“域目录”是您首管服务器的域目录。
然后
执行解密命令:
print "您的weblogic密码是:%s" %encryption.decrypt("{AES}sssss")
执行加密命令:
print "您的weblogic密码是:%s" %encryption.encrypt("password")
2.2、脚本化解密
(1)要脚本化解密,需要先编写python脚本来调用wlst.sh的方法
decrypt.py如下
import os import weblogic.security.internal.SerializedSystemIni import weblogic.security.internal.encryption.ClearOrEncryptedService def decrypt(password): domainpath="域目录"
service=weblogic.security.internal.SerializedSystemIni.getEncryptionService(domain)
encryption=weblogic.security.internal.encryption.ClearOrEncryptedService(service)
password=ces.decrypt(password) print password try: if len(sys.argv)==2: decrypt(sys.argv[1]) else: print "error" exception: print "exception"
(2)再使用该脚本进行解密
java -cp /weblogic目录/wlserver/server/lib/weblogic.jar weblogic.WLST decrypt.py "{AES}sssssss"

浙公网安备 33010602011771号