TIP N° 4 : ¿Olvidaste la password de tu usuario Weblogic?
Sabías que uno de los archivos más importantes en términos de seguridad en Weblogic es el archivo SerializedSystemIni.dat, este archivo contiene los datos de seguridad encriptados y esta ubicado en la ruta $DOMAIN_HOME/security. Otro archivo es el boot.properties localizado en la ruta: $DOMAIN_HOME/servers/AdminSever/security este contiene el dato encriptado del nombre de usuario y contraseña del dominio.
Esto puede ser útil no solo para recuperar el password del usuario admin del dominio weblogic, sino que también para recuperar el password de algún datasurce o certificado SSL que hallamos olvidado o que no podamos contactar a la persona que hizo el cambio.
El siguiente paso a paso muestra como desencriptar,
para recuperar el usuario y password, teniendo acceso a los datos del archivo SerializedSystemIni.dat
y
del boot.properties.
1. Crear el script decrypt_password.py en la ruta $DOMAIN_HOME/security y copiar y pegar lo siguiente:
from weblogic.security.internal import *
from weblogic.security.internal.encryption import *
encryptionService = SerializedSystemIni.getEncryptionService(".")
clearOrEncryptService = ClearOrEncryptedService(encryptionService)
# Take encrypt password from userpwd = raw_input("Paste encrypted password ({AES}fk9EK...): ")
# Delete unnecessary escape characterspreppwd = pwd.replace("\\", "")
# Display passwordprint "Decrypted string is: " + clearOrEncryptService.decrypt(preppwd)
2. Activar las variables de ambiente del dominio weblogic:
source $DOMAIN_HOME/bin/setDomainEnv.sh
3. Obtener los datos encritpados, en este ejemplo lo haremos desde el archivo boot.properties, de la misma manera se puede obtener desde el archivos xml de los datasource o desde el archivo jks de los certificados de seguridad.
#Username:grep username $DOMAIN_HOME/servers/AdminServer/security/boot.properties | sed -e "s/^username=\(.*\)/\1/"
#Password:grep password $DOMAIN_HOME/servers/AdminServer/security/boot.properties | sed -e "s/^password=\(.*\)/\1/"
4. Ir al directorio $DOMAIN_HOME/security y correr el siguiente comando tal y como se ve en el siguiente ejemplo:
cd $DOMAIN_HOME/security
java weblogic.WLST decrypt_password.py
Initializing WebLogic Scripting Tool (WLST) ...
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
Please enter encrypted password (Eg. {AES}fk9EK...): {AES}jkIkkdh693dsyLt+DrKUfNcXryuHKLJD76*SXnPqnl5oo\=
Decrypted string is: welcome1
El valor desencriptado corresponde a la password que habíamos perdido.