Comment rediriger votre site Web vers HTTPS derrière un équilibreur AWS Load

Comment rediriger votre site Web vers HTTPS derrière un équilibreur AWS Load

Sur les instances AWS EC2, votre serveur Web écoute sur le port 80 pour accepter les connexions HTTP. Par la suite, vous avez configuré le Balancer de chargement Amazon Elastic (ELB) pour écouter le trafic HTTP et HTTPS et transférer toutes les demandes du serveur backend sur le port 80 uniquement. Le Amazon Elastic Load Balancer (ELB) soutient le X-Proto Valeur d'en-tête, qui comprend le protocole de l'application.

Le X-Proto La valeur d'en-tête de la demande HTTP est utilisée dans ce tutoriel, et les règles de réécriture sont appliquées si le protocole client n'est pas HTTPS.

Voici comment forcer une redirection vers HTTPS derrière AWS ELB à l'aide d'Apache, Nginx ou de serveurs Web IIS.

1. Apache

Ajout d'une règle de redirection HTTPS vers votre apache virtualhost ou .Le fichier HTACCESS est un moyen facile de rediriger tout le trafic vers votre site Web pour utiliser HTTPS. Vous pouvez le faire en ajoutant le code suivant à votre VirtualHost ou .Fichier HTACCESS:

Réécriture de la réécriture REWRITECOND% http: X-Forwarded-proto !https réécriture ^.* $ https: //% server_name% request_uri
123 Réécriture de la réécriture REWRITECOND% http: X-Forwarded-proto !https réécriture ^.* $ https: //% server_name% request_uri

Le code ci-dessus est un exemple de règle de redirection HTTPS qui peut être ajouté à un .fichier htaccess. Lorsque cette règle est ajoutée, il vérifie si l'en-tête X-Forwardée-Proto n'est pas défini sur HTTP. Ceci est utile dans les scénarios où le site Web est derrière un équilibreur de chargement ou un proxy, et l'en-tête X-Forwarded-proto est utilisé pour transmettre des informations sur le protocole du client au serveur. En ajoutant ce code à votre .Fichier HTACCESS, tout le trafic vers votre site Web sera redirigé vers l'utilisation de HTTPS, garantissant que votre site Web est sécurisé et crypté.

2. Nginx

Modifiez le bloc de serveur NGINX HTTP pour votre domaine pour configurer la redirection de force. Ajoutez le contenu suivant sous le bloc d'emplacement pour rediriger tout le trafic HTTP vers HTTPS.

emplacement / if ($ http_x_forwarded_proto != 'https') réécriture ^ https: // $ host $ request_uri? permanent;
1234 emplacement / if ($ http_x_forwarded_proto != 'https') réécriture ^ https: // $ host $ request_uri? permanent;

La configuration Nginx ci-dessus est un exemple de règle de redirection HTTPS qui peut être ajoutée à un bloc de localisation dans le fichier de configuration Nginx. Lorsque cette règle est ajoutée, il vérifie si l'en-tête X-Forwardée n'est pas défini sur HTTPS, et s'il ne l'est pas, il utilise la directive de réécriture pour rediriger tous. L'instruction if est utilisée pour vérifier la variable http_x_forwarded_proto, qui est définie sur HTTPS lorsque la connexion est sécurisée. En ajoutant ce code à votre fichier de configuration Nginx, tout le trafic vers votre site Web sera redirigé vers l'utilisation de HTTPS, garantissant que votre site Web est sécurisé et crypté.

3. IIS

Les serveurs Windows avec le serveur Web IIS modifient ou créent le la toile.configurer fichier et ajouter le code suivant dans la section:

1234567891011

Conclusion

En suivant ces quatre étapes, vous pouvez facilement rediriger votre site Web vers HTTPS derrière un équilibreur AWS Load. Avec un certificat SSL / TLS, une configuration d'équilibreur de chargement, une création de règles de redirection et une mise à jour d'enregistrement DNS, vous pouvez vous assurer que tout le trafic vers votre site Web est crypté et sécurisé.