Sunday, June 5, 2016

How to create a IBM MQ Client Library using SSL for transmision? (PART I-II)

1. Ambiente de desarrollo 
  • Ubuntu 16.04 
  • IBM Message Queue 7.5 
2. Aplicación empleando SSL, creación de una Autoridad de Certificación. 
2.1. Crear una llave para el repositorio CA 
Crear un directorio, y dentro del directorio crear el archivo con la llave del repositorio:
user@user-vbox:~/code/ssl$ mkdir appCAdir
user@user-vbox:~/code/ssl$ cd appCAdir/
user@user-vbox:~/code/ssl/appCAdir$ /opt/mqm/bin/runmqckm -keydb -create -db appCA.kdb -type cms


Ingresando los comandos se solicitara crear una contraseña y deberá ingresar para usar la llave CA del repositorio.

2.2. Crear un certificado personal CA certificado

user@user-vbox:~/code/ssl/appCAdir$ /opt/mqm/bin/runmqckm -cert -create -db appCA.kdb -type cms -label "appCAcertificate" -dn "CN=appSysCAName,O=sysEnterprise,OU=sysDeparment,L=Mexico,C=MX" -expire 1000 -size 1024

-expires: define la cantidad de dias de expiracion del certificado

2.3 Extraer el certificado CA

Extraer el certificado CA en un archivo llamado appCAcertfile.cer, el cual transferiremos después a los repositorios del gestor de colas y cliente de la aplicación.

user@user-vbox:~/code/ssl/appCAdir$ /opt/mqm/bin/runmqckm -cert -extract -db appCA.kdb -type cms -label "appCAcertificate" -target appCAcertfile.cer -format ascii

2.4 Emisor de un certificado para un gestor de colas

Cada gestor de colas en la infraestructura debe tener su propio certificado, con su propio nombre distinguido (DN), El DN debe ser único con la red del Websphere MQ.

user@user-vbox:~/code/ssl/appCAdir$ /opt/mqm/bin/crtmqm appqmgr01
There are 89 days left in the trial period for this copy of WebSphere MQ.
WebSphere MQ queue manager created.
Directory '/var/mqm/qmgrs/appqmgr01' created.
The queue manager is associated with installation 'Installation1'.
Creating or replacing default objects for queue manager 'appqmgr01'.
Default objects statistics : 74 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
user@user-vbox:~/code/ssl/appCAdir$ /opt/mqm/bin/strmqm appqmgr01
There are 89 days left in the trial period for this copy of WebSphere MQ.
WebSphere MQ queue manager 'appqmgr01' starting.
The queue manager is associated with installation 'Installation1'.
5 log records accessed on queue manager 'appqmgr01' during the log replay phase.
Log replay for queue manager 'appqmgr01' complete.
Transaction manager state recovered for queue manager 'appqmgr01'.
WebSphere MQ queue manager 'appqmgr01' started using V7.5.0.2.

2.4.2 Crear la llave del repositorio para el gestor de colas

Cambiar la localización del directorio donde el archivo con la llave del repositorio es creado: /repository

user@user-vbox:~/code/ssl$ mkdir repositoryuser@user-vbox:~/code/ssl$ cd repository/

Y es seguido del siguiente comando para crear con la llave de la base de datos para el gestor colas:

user@user-vbox:~/code/ssl/repository$ /opt/mqm/bin/runmqckm -keydb -create -db appqmgr.kdb -type cms -stash

Después de ingresar el comando se solicitara ingresar la contraseña.

2.4.3 Crear el certificado de respuesta para solicitud

Generar el certificado de solicitud para el gestor de colas, a partir de llave privada.

user@user-vbox:~/code/ssl/appCAdir$ /opt/mqm/bin/runmqckm -certreq -create -db appqmgr.kdb -type cms -dn "CN=appqmgr01,O=sysEnterprise,OU=sysDeparment,L=Mexico,C=MX" -label "ibmwebspheremqappqmgr" -file appqmgr.req
  
Después de ingresar el comando se solicitara ingresar la contraseña.

2.4.4 Transferir la solicitud

Para transferir el archivo de solicitud del certificado appqmgr.req, APRA el directorio donde el archivo CA se encuentra localizado. Es necesario cambiar al directorio:


user@user-vbox:~/code/ssl/repository$ ls
appqmgr.kdb  appqmgr.rdb  appqmgr.req  appqmgr.sth
user@user-vbox:~/code/ssl/repository$ pwd
/home/user/code/ssl/repository
user@user-vbox:~/code/ssl/repository$ mv appqmgr.req /home/user/code/ssl/appCAdir/

2.4.5 Firmar el certificado del gestor colas

Ejecutando el siguiente comando:

user@user-vbox:~/code/ssl/appCAdir$ /opt/mqm/bin/runmqckm -cert -sign -db appCA.kdb -label "appCAcertificate" -expire 365 -format ascii -file appqmgr.req -target appqmgr.cer

2.4.6 Transferir el certificado firmado CA

Transferir el certificado firmado appqmgr.cer y el certifcado public appCAcertfile.cer, a /repository.

user@user-vbox:~/code/ssl/appCAdir$ mv appqmgr.cer /home/user/code/ssl/repository/
user@user-vbox:~/code/ssl/appCAdir$ cp appCAcertfile.cer /home/user/code/ssl/repository/
2.4.7 Agregar el certificado CA

Agregar el certificado publico de CA al repositoriod e llaves del gestor de colas:

user@user-vbox:~/code/ssl/repository$ /opt/mqm/bin/runmqckm  -cert -add -db appqmgr.kdb -type cms -file appCAcertfile.cer -label "theCAcert"  
 


2.4.8 Repositorio del certificado firmado

Recibir el certificado en la llave del repositorio del gestor de colas.


 user @user-vbox:~/code/ssl/repository$ /opt/mqm/bin/runmqckm -cert -receive -db appqmgr.kdb -type cms -file appqmgr.cer

2.5 Agregar la locación de la llave del queuemanager
user@user-vbox:~/code/ssl/repository$ /opt/mqm/bin/runmqsc appqmgr01
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager appqmgr01.

ALTER QMGR SSLKEYR('/home/user/code/ssl/repository/appqmgr')
     1 : ALTER QMGR SSLKEYR('/home/
user/code/ssl/repository/appqmgr')
AMQ8005: WebSphere MQ queue manager changed.
END
     2 : END
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.



Aqui termina la parte uno de 2 articulos de creación de certificados en IBM MQ.

Best regards,

How to install IBM Message Queue 7.5 on Ubuntu 16.04?

Guia rápida de instalación IBM Message Queue 7.5 on 16.04

0. Instalables (IBM MQ 7.5)
http://www.ibm.com/developerworks/downloads/ws/wmq/

1. Prerequisitos:
1.1. Instalar JDK 6
En el siguiente enlace se puede encontrar una guia rapida para su instalación:
http://codefixes.blogspot.mx/2015/09/how-to-install-jdk-on-ubuntu-14.html
1.2. Verificar permisos de sudo
#Agregar usuario al siguiente archivo
/etc/sudoers

# User privilege specification
root    ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL


1.2. Configurar el equipo con variables necesarias

1.2.1. Add the following lines to sysctl.conf file:
 user-vbox:~$ sudo gedit /etc/sysctl.conf

#################################
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 268435456
kernel.sem = 500 256000 250 1024
 

fs.file-max = 524288
kernel.sem = 500 256000 250 1024
net.ipv4.tcp_keepalive_time = 300

#for ibm mq 9, posible values are 0,1,2
vm.overcommit_memory=2
#################################



user-vbox:~$ sudo sysctl -p


1.2.1. Add the following lines to limits.conf file:

user-vbox:~$ sudo gedit /etc/security/limits.conf

#################################
mqm             hard   nofile        10240
mqm             soft    nofile         10240

################################# 

1.2.1. Install required tools 

user-vbox:~$ sudo apt-get install rpm
user-vbox:~$ sudo apt-get install linux-headers-$(uname -r)

user-vbox:~$ sudo apt-get install pax

2. Instalación del producto
2.1. Colocarse en la ruta del instalable
user-vbox:~$ chmod 755 MQ_7.5.0.2_TRIAL_LNX_ON_X86_64_ML.tar.gz
user-vbox:~$ tar -xzvf MQ_7.5.0.2_TRIAL_LNX_ON_X86_64_ML.tar.gz
user-vbox:~$ cd MQServer
user-vbox:~$ sudo ./mqlicense.sh


2.1. Instalar cada archivo rpm en el siguiente orden recomendado
################################
################################

2.2. Verificar la instalación ejecutando  el siguiente comando
user-vbox:~$ su mqm -c "/opt/mqm/bin/mqconfig"
user-vbox:~$ sudo ./setmqinst -i -p /opt/mqm
 
2.2.1. Modificar contraseña de usuario mqm
user-vbox:~$ sudo passwd mqm

################################################
2.2.1. Asignar permisos a usuarios para crear objetos dento IBM MQ


user-vbox:~$ sudo addgroup <usuario-aplicativo> mqm
# Permiso para el usuario de message broker 
user-vbox:~$ sudo addgroup <usuario-aplicativo> mqbrkrs
# Agregar usuario, requiere reinicio de sesion user-vbox:~$ sudo usermod -a -G groupName <usuario-aplicativo>

2.2.2. Load the environment variable for MQ using setmqenv
$. /opt/mqm/bin/setmqenv


3. Desintalar IBM MQ
 
################################################

rpm -qa | grep MQSeries

#REMOVE INSTALLATION
sudo rpm -e MQSeriesExplorer_dev-8.0.0-4

################################################3



4. Enlaces importantes





Best regards,

Sunday, May 29, 2016

Open ports of Centos 7 in a Virtual Machine over VirtualBox

Recently I have to configure my virtual machine to get some ports exposed in the network using a virtual box for publish, there are only two steps that resolve my problem:

Step 1:  Add port to firewall configuration
1.1. Execute: $ sudo firewall-config
1.2. Add the tcp ports required on ports tab

Step 2: If you have a configuration with NAT network you have to execute the next command according to your machine:
$ VBoxManage modifyvm "dev_centos" --natpf1 "tomcat,tcp,127.0.0.1,<port>,10.0.2.15,<port>"

Best Regards,