Instalación Certificado Hostmonster en EC2 – Apache2

Para poder ejecutar este tutorial, debemos tener un dominio en hostmonster, haber adquirido un certificado SSL en hostmonster y haber configurado un redireccionamiento del dominio hacia la ip del servidor externo al que queramos llegar, en este caso en AWS.

Pasos:

Iniciamos sesión en cPanel de Hostmonster y nos dirigimos a la sección Security > SSL/TLS

En esta sección iremos a Certificates (CRT) > Generate, view, upload…


Aquí, bajo el certificado del dominio que queramos aplicar en el servidor externo, daremos click en “install”

De aquí obtendremos, el certificado CRT y la llave

Almacenaremos los certificados en el servidor de destino:

/etc/pki/tls/certs/certificate.crt
/etc/pki/tls/private/certificate.key

Adicional a esto, es necesario instalar el módulo SSL de apache, mediante el siguiente comando:

sudo yum -y install mod_ssl

Una vez instalado, se debe modificar la configuración ssl del apache, misma que se encuentra en:

/etc/httpd/conf.d/ssl.conf

Apuntando las rutas necesarias al certificado y llave obtenidos de hostmonster:

Adicional a esto se debe verificar que la propiedad server name corresponda al dominio que tiene asociado el certificado:

Para finalizar, es necesario reiniciar servicio apache con el siguiente comando:

sudo service httpd restart

Envío de Pruebas Masivas usando SOAP UI

Me solicitan enviar 1000 peticiones de forma masiva a un servicio web de tipo SOAP, para lo cual puedo valerme de la funcionalidad de pruebas de SOAP UI.

Para esto vamos simular la llamada a un servicio que tiene la siguiente estructura:

Par lo cual vamos a crear un archivo XML por cada una de las peticiones que voy a realizar y almacenarlas en una carpeta, en este caso “requests”

Cada uno de los archivos tendrá el fragmento de la petición que variará de llamada en llamada.

Una vez que tengo armados los archivos, procedo a estructurar la prueba dentro de SOAP UI, para esto crearemos 3 pasos

Paso 1

Script lee los archivos en el directorio “request” y inicializa un arreglo con los mismos

def fileList = []
new File("/path/requests/").eachFile { f ->
if (f.isFile() && f.name.endsWith('.xml')) {
def filename = f.name[0..-1]
fileList.add(filename)
log.info filename
}
}
if (fileList.size() < 1) {
testRunner.fail("No request files")
}
context.put('fileList', fileList)

Paso 2

El paso 2 es una llamada SOAP, con una modificación para que tome el nombre del archivo del arreglo creado en el paso 1

${=new File("/path/requests/" + (context.get('fileList')).first()).text}

Paso 3

Aquí iteramos sobre cada ejecución y almacenamos tanto la llamada, como la respuesta en el directorio “responses”

def fileList = context.get('fileList')
def fileName = fileList.first()
def newName = fileName[0..-5]
def response = context.expand( '${Step2#Response}' )
def f = new File("/path/responses/${newName}_Response.xml")
f.write(response, "UTF-8")
def query = context.expand( '${Step2#Request}' )
def q = new File("/path/responses/${newName}_Query.xml")
q.write(query, "UTF-8")
fileList.pop()
if(fileList.size() >0)
{
testRunner.gotoStepByName("Step2")
}

Por ultimo ejecutamos el caso de prueba