Forzar HTTPS en Elastic Beanstalk con Nginx

Cuando tienes una instancia única (o Single Instance) de EC2 en Elastic Beanstalk, o en otras palabras, no se está utilizando una Arquitectura de Alta Disponibilidad (o High Availability) con un Balanceador de Carga (o Load Balancer), no se puede forzar HTTPS desde la consola de Elastic Beanstalk con Nginx.

Sin embargo, existe una configuración muy sencilla lograrlo cuando no se utiliza un balanceador de carga.

Paso #1: Crear estructura de carpetas para la configuración del servidor Nginx

En la raíz de tu proyecto, crea la siguiente estructura de carpetas.

.platform/nginx/conf.d/elasticbeanstak

Esta estructura de carpetas es interpretada por el servidor de Nginx, en el cual puedes incluir diversas configuraciones y Ngnix las procesará para configurar la instancia.

Si tienes dudas de cual es la raíz de tu proyecto, te pongo un ejemplo. Si fuera un proyecto de WordPress, la carpeta ".platform" debería estar al mismo nivel que las carpetas "wp-admin", "wp-content", etc... Como se muestra en la siguiente imagen:
Nota como en .platform esta al mismo nivel que los demás archivos y carpetas del proyecto de WordPress.

No importa si tu proyecto no es de WordPress, este procedimiento debe hacerse igual en cualquier tipo de proyecto.

Paso #2: Crear el archivo de configuración de Nginx en nuestro proyecto para Forzar HTTPS en Elastic Beanstalk con Nginx

Ahora bien, dentro de la carpeta elasticbeanstalk crea el archivo custom.conf, en el cual deberás escribir el siguiente código:

# /.platform/nginx/conf.d/elasticbeanstalk/nginx-config.conf
if ($http_x_forwarded_proto = 'http'){
    return 301 https://$host$request_uri;
}

De tal forma que nuestra estructura de carpetas y archivos quede de la siguiente manera:

Nota como el archivo custom.conf quedo dentro de la carpeta elasticbeanstalk.

Listo! Solo queda subir esta actualización de tu proyecto a Elastic Beanstalk y disfrutar de la redirección a HTTPS de tu instancia en Elastic Beanstalk.

Ahora ya sabes cómo forzar HTTPS en Elastic Beanstalk con Nginx cuando no se utiliza un balanceador de cargas.

NOTA: No recomiendo utilizar esta configuración en un esquema de Balanceo de Carga puesto que puede conflictuar con el Balanceador de Carga de Amazon Web Services. Si este es tu caso te recomiendo esta guía: https://docs.aws.amazon.com/es_es/elasticbeanstalk/latest/dg/configuring-https-elb.html

Subscríbete para seguir aprendiendo sobre tecnología. No dudes en dejar tus comentarios, recomendaciones y/o dudas en este artículo. Si quieres saber más de mi entra aquí.

Antes de programar un bot de trading con el API de KuCoin Configurar un acceso SSH a instancias EC2 en AWS Yo soy Andres Gutierrez
View Comments
There are currently no comments.