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:
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:
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í.