写点什么

Weblogic 控制台数据源密码的脚本化修改

作者:zhengzai7
  • 2023-07-13
    陕西
  • 本文字数:1993 字

    阅读完需:约 7 分钟

Weblogic控制台数据源密码的脚本化修改

第一章、修改 Weblogic 控制台密码

第 1 节、涉及密码配置文件

第 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 节、涉及配置文件

第 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"
复制代码


用户头像

zhengzai7

关注

还未添加个人签名 2023-07-07 加入

还未添加个人简介

评论

发布
暂无评论
Weblogic控制台数据源密码的脚本化修改_Shell_zhengzai7_InfoQ写作社区