Archive for the ‘JMeter’ Category

Habilitar HTTPS en JMeter

viernes, diciembre 9th, 2016

Una de las situaciones actuales en los momentos de probar un sitio web es poder probar la carga de conexiones hacia el sitio, actualmente muchos de los sitios están ejecutando sobre el protocolo HTTPS por motivos de seguridad.

Para poder hacer las pruebas desde JMeter se tiene que habilitar un certificado para que JMeter pueda conectarse al servidor HTTPS intercambiando sus certificados.

Primero ejecutar el comando
openssl s_client -connect hostname:port -showcerts

Para quienes tienen Mac o Linux el comando viene dentro de la instalación, en windows, recomiendo instalar OpenSSL

Aparecerá el certificado del servidor al cual te estas intentando conectar y un segundo certificado, que es el que utiliza openssl. Esta segunda parte copialo y pégalo en un txt desde BEGIN y END inclusive.

Asumamos que lo guardaste como AppJMeter.cer

Lo segundo es ejecutar keytool de java para guardar el certificado dentro de un almacén seguro

keytool -importcert -alias APPLICATION_NAME_CA_PUBLIC_CERT -file AppJMeter.cer -keystore jmeter_truststore.jks -storepass Password01

Finalmente edita /bin/system.properties e incluye

https.default.protocol=TLSv1
javax.net.ssl.trustStore=C:/jmeter/apache-jmeter-2.13/jmeter_truststore.jks
javax.net.ssl.trustStorePassword=Password01

Esta claro que debes considerar la rutas correctas.
Reinicia JMeter y ahora puedes utilizar puerto 443 y protocolo HTTPS

Errores posibles

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure : si se recibe este error es porque los certificados de Java están desactualizados, por lo que debes buscar en Oracle la ultima versión de JCE y copiarlo en /lib/security, la actualización viene con dos archivos local_policy.jar y US_export_policy.jar, una vez copiados reinicia JMeter

Es posible también que recibas otro error por protocolo, hay que ver el nivel de encriptación del sitio (casi siempre en el candado que aparece en la dirección) y ver que versión TLS esta utilizando. Los sitios mas nuevos están utilizando TLSv1.2 por lo que se debiese cambiar el protocolo dentro del system.properties de JMeter

https.default.protocol=TLSv1.2