Cómo redirigir su sitio web a HTTPS detrás de un equilibrador de carga de AWS

Cómo redirigir su sitio web a HTTPS detrás de un equilibrador de carga de AWS

En instancias de AWS EC2, su servidor web está escuchando en el puerto 80 para aceptar conexiones HTTP. Posteriormente, configuró el Balancer de carga de Amazon Elastic (ELB) para escuchar el tráfico HTTP y HTTPS y reenviar todas las solicitudes al servidor de backend en el puerto 80 solamente. El Balancador de carga elástica de Amazon (Elb) apoya el X-Forwarded-Proto Valor de encabezado, que incluye el protocolo de la aplicación.

El X-Forwarded-Proto El valor del encabezado de la solicitud HTTP se usa en este tutorial, y las reglas de reescritura se aplican si el protocolo del cliente no es HTTPS.

Aquí es cómo forzar una redirección a HTTPS detrás de AWS Elb usando los servidores web Apache, Nginx o IIS.

1. apache

Agregar una regla de redirección HTTPS a su Apache VirtualHost o .El archivo htaccess es una manera fácil de redirigir todo el tráfico a su sitio web para usar HTTPS. Puede hacer esto agregando el siguiente código a su virtualhost o .archivo htaccess:

RewriteEngine en RewriteCond %http: x-forwarded-proto !https rewriterule ^.*$ https: //%server_name%request_uri
123 RewriteEngine en RewriteCond %http: x-forwarded-proto !https rewriterule ^.*$ https: //%server_name%request_uri

El código anterior es un ejemplo de una regla de redirección HTTPS que se puede agregar a un .archivo htaccess. Cuando se agrega esta regla, verifica si el encabezado de PROTO de X-Forwarded no está configurado en HTTPS, y si no es así, redirige todo el tráfico para usar HTTPS utilizando las variables %server_name y %request_uri. Esto es útil en escenarios en los que el sitio web está detrás de un equilibrador de carga o un proxy, y el encabezado X-Forwarded Proto se utiliza para pasar información sobre el protocolo del cliente al servidor. Agregando este código a su .archivo htaccess, todo el tráfico a su sitio web se redirigirá para usar HTTPS, asegurando que su sitio web esté seguro y encriptado.

2. Nginx

Edite el bloque Nginx HTTP Server para su dominio para configurar la redirección de fuerza. Agregue el siguiente contenido en el bloque de ubicación para redirigir todo el tráfico HTTP a HTTPS.

Ubicación / if ($ http_x_forwarded_proto != 'https') reescritura ^ https: // $ host $ request_uri? permanente;
1234 Ubicación / if ($ http_x_forwarded_proto != 'https') reescritura ^ https: // $ host $ request_uri? permanente;

La configuración de Nginx anterior es un ejemplo de una regla de redirección HTTPS que se puede agregar a un bloque de ubicación en el archivo de configuración de Nginx. Cuando se agrega esta regla, verifica si el encabezado de PROTO X-Forwarded no está configurado en HTTPS, y si no es así, utiliza la Directiva Rewrite para redirigir todo el tráfico para usar HTTPS usando las variables $ Host y $ Solici_uri. La instrucción IF se usa para verificar la variable http_x_forwarded_proto, que se establece en https cuando la conexión es segura. Al agregar este código a su archivo de configuración de Nginx, todo el tráfico a su sitio web se redirigirá para usar HTTPS, asegurando que su sitio web esté seguro y encriptado.

3. Iis

Los servidores de Windows con el servidor web IIS editar o crear el web.configuración Archivo y agregue el siguiente código en la sección:

1234567891011

Conclusión

Siguiendo estos cuatro pasos, puede redirigir fácilmente su sitio web a HTTPS detrás de un equilibrador de carga de AWS. Con un certificado SSL/TLS, configuración del equilibrador de carga, creación de reglas de redirección y actualización de registro DNS, puede asegurarse de que todo el tráfico en su sitio web esté encriptado y seguro.