Bitácora de EleKtR0

English - Italiano - Deutsch - Français - Português - русский

5 de marzo de 2015

Error de certificado SSL en Weblogic

Con el certificado demo que viene por defecto en Weblogic suele dar el error "Uncaught exception in server handler: javax.net.ssl.SSLKeyException: [Security:090482]BAD_CERTIFICATE". Para evitarlo podemos poner el parámetro
-Dweblogic.security.SSL.ignoreHostnameVerification=true
en el fichero de arranque del servicio que use SSL (admin server, nodemanager, managed server, etc.)

Otra opción es crear un nuevo certificado autofirmado con el common name (cn) del servidor donde va a estar el certificado.

1º Cargar las variables de entorno correspondientes:
$WL_HOME/server/bin/setWLSEnv.sh

2º Crear el certificado:
java utils.CertGen -cn YOURSERVER.DOMAIN.COM -keyfilepass DemoIdentityPassPhrase -certfile mycert -keyfile mykey

3º Importar el certificado en el almacén:
java utils.ImportPrivateKey -keystore DemoIdentity.jks -storepass DemoIdentityKeyStorePassPhrase -keyfile mykey.pem -keyfilepass DemoIdentityPassPhrase -certfile mycert.pem -alias demoidentity

4º Copiar el almacén de certificados DemoIdentity.jks en $WL_HOME/server/lib sobrescribiendo el anterior

Etiquetas: , ,

2 de marzo de 2015

Nodemanager no accesible en Weblogic

En este enlace explican cómo resolver el problema de un node manager de Weblogic que no está correctamente conectado al admin server para poder gestionar los servidores desde él.

Etiquetas: , ,

Contraseña del repositorio de claves de Weblogic

Para los que se vuelven locos una y otra vez buscando la contraseña del repositorio de claves que trae Weblogic por defecto, aquí está la ruta de los ficheros .jks y la contraseña tanto de cada fichero como de la clave privada del certificado.

Almacén de certificados de confianza (Trust store): Se encuentra en ${WL_HOME}/server/lib/DemoTrust.jks
Contraseña del trust store: DemoTrustKeyStorePassPhrase

Almacén del certificado SSL de Weblogic (Key store): Se encuentra en ${WL_HOME}/server/lib/DemoIdentity.jks
Contraseña del key store: DemoIdentityKeyStorePassPhrase
Contraseña de la clave privada del certificado por defecto (demoidentity): DemoIdentityPassPhrase

Etiquetas: , ,

21 de enero de 2015

Instalar un cluster en Debian desde 0

1º Instalar Corosync y Pacemaker
aptitude install corosync pacemaker
Esto crea un usuario hacluster en un grupo llamado haclient

2º Modificaremos en /etc/corosync/corosync.conf la ip de la interfaz de red que usará el cluster para comunicarse. Por defecto podemos encontrar 127.0.0.1 en bindnetaddr Si vamos a usar multicast para la comunicación y localización de nodos en el cluster podemos dejar la ip por defecto en mcastaddr si no tenemos otros servidores que vayan a usarla.
        interface {
                # The following values need to be set based on your environment
                ringnumber: 0
                bindnetaddr: 192.168.1.81  # ip de la interfaz a usar por el cluster
                mcastaddr: 226.94.1.1
                mcastport: 5405
        }

Aprovecharemos para configurar el log en un fichero separado puesto que el cluster generará mucha información y hará que el log del sistema sea inmanejable. Para ellos pondremos en el apartado logging de /etc/corosync/corosync.conf lo siguiente:
 to_syslog: no     # cambiar el valor por defecto yes a no  
 to_logfile: yes   # cambiar el valor por defecto no a yes para desviar la salida a un fichero
 logfile: /var/log/cluster.log  # esta línea no existe y hay que añadirla para indicar el nombre del fichero de log
3º Para que el servicio arranque, pondremos START=yes en /etc/default/corosync y ejecutaremos:
 service corosync start 
4º Configurar el resto de nodos del cluster de la misma forma si no lo hemos hecho en los pasos anteriores y arrancar el servicio corosync.

5º El servicio gestor de recursos del cluster pacemaker no arranca si no indicamos un recurso stonith antes pero temporalmente podemos poner en las propiedades del cluster con el comando crm configure edit la propiedad stonith-enabled="false" para que nos deje arrancar el servicio pacemaker. Ejemplo:
property $id="cib-bootstrap-options" \
        dc-version="1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff" \
        cluster-infrastructure="openais" \
        expected-quorum-votes="2" \
        no-quorum-policy="ignore" \
        stonith-enabled="false"
Si tenemos un cluster de sólo dos nodos es necesaria la propiedad no-quorum-policy="ignore" para que al fallar un nodo se mantengan levantados los servicios en otro nodo ya que se pierde el quorum. Si tenemos más de un nodo no es necesario y además contrapropucente porque puede darse una situación de split brain. El comando crm_verify -L nos mostrará errores de configuración del cluster si no arranca algún servicio. En versiones anteriores de Pacemaker se arrancaba el servicio con el script en /etc/init.d pero en la versión actual, incluida en Debian Wheezy el servicio pacemaker es ejecutado como plugin de Corosync y no hay que ejecutarlo como servicio del sistema.

6º Probaremos a configurar manualmente una ip flotante en el cluster. Recomendable usar alguna herramienta gráfica, como Hawk o crm_gui, para configurar los recursos. Para configurarla manualmente añadimos estas líneas con crm configure edit
primitive ip-apache ocf:heartbeat:IPaddr2 \
 params cidr_netmask="24" ip="192.168.1.88" \
 op stop interval="0" timeout="20s" \
 op start interval="0" timeout="20s" \
 op monitor interval="10s" timeout="20s"
Con el comando crm_mon podremos comprobar que se está ejecutando el recurso en uno de los nodos (con un ping se puede probar que la ip del ejemplo, 192.168.1.88, responde). Ahora podemos añadir/quitar recursos en el cluster y configurar el recurso stonith para que un servidor inestable se reinicie o apague. No nos olvidemos de poner la propiedad stonith-enabled="true" cuando configuremos stonith.

Etiquetas: , ,

31 de diciembre de 2014

Arrancar una máquina virtual en VirtualBox desde USB

Para arrancar una máquina virtual desde una unidad conectada por USB (pendrive, disco externo, etc.) en el host hay que crear un disco virtual que acceda a la unidad USB y luego asignar el disco virtual a la máquina que queramos desde la interfaz de VirtualBox.

Por ejemplo, para crear un disco virtual llamado usb.vmdk que enlace con la ruta /dev/sdb donde tengo conectado un pendrive que arranca un sistema operativo instalado en él:

VBoxManage internalcommands createrawvmdk -filename usb.vmdk -rawdisk /dev/sdb

Aviso que VirtualBox necesitará permiso de lectura/escritura en /dev/sdb tanto a la hora de crear este disco como cuando arranquemos una máquina virtual con él y por defecto tiene permisos sólo para root aunque para hacer una prueba rápida podemos dar los permisos necesarios con chmod 777 /dev/sdb

Etiquetas: , , ,