Archive for June, 2011
Encriptación SSL para servicios HTTP que no lo soportan
1Hace unos días me encontré con el problema de encriptar mediante SSL trafico HTTP de un webservice/Aplicación que originalmente no tiene soporte para SSL.
Llegue a una solución realmente rapida y sencilla que no implica que los desarrolladores modifiquen la aplicacion gracias a NGINX.
La idea es crear un bloque server SSL en NGINX y gracias al modulo proxy y el parametro proxy_pass, redireccionar todo el trafico hacia el servidor interno sin SSL. Esto permite mantener la aplicacion y la implementación intacta, agregando encriptación SSL en la comunicacion entre el cliente y nuestro reverse proxy (NGINX).
Ejemplo de configuración:
#ssl portion server { listen 443; server_name ws.example.com; # configuracion SSL especifica ssl on; ssl_certificate /etc/ssl/nginx/nginx.pem; ssl_certificate_key /etc/ssl/nginx/nginx.key; access_log /var/log/nginx/ws.example.com.ssl_access_log main; error_log /var/log/nginx/ws.example.com.ssl_error_log error; # WebServices URI location / { proxy_pass http://192.168.1.2; } }
En el ejemplo creamos un vhost ws.example.com con la opción SSL y solicitamos todo el trafico dirigido a ese vhost al servidor alojado en la IP interna 192.168.1.2.
Adicionalmente se podría solo redireccionar alguna URI especifica modificando el bloque location.