Notre site Web doit être conforme à la norme HIPAA, donc tout doit être chiffré. Je ne veux pas que le client reçoive un message d'erreur lorsqu'il insère " http : //mysite.com", je dois donc prendre en charge HTTP et HTTPS et rediriger HTTP vers HTTPS. Ai-je raison?
Je l'ai fait correctement sur les serveurs Web. Donc, si je me connecte directement aux serveurs Web, HTTP est automatiquement redirigé vers HTTPS. Tout bon.
Mais les serveurs Web se trouvent derrière un équilibreur de charge d'application AWS. Je ne sais pas comment rediriger HTTP vers HTTPS sur l'ELB. Ainsi, les navigateurs clients peuvent toujours se connecter à l'ELB via HTTP.
Comment configurer HTTP => HTTPS sur un équilibreur de charge d'application AWS?
En d'autres termes, je suis sûr que la connexion entre l'ELB et les serveurs Web est HTTPS, mais comment s'assurer que la connexion entre les navigateurs clients et l'ELB est HTTPS?
la source
X-Forwarded-Proto
tête que le LB envoie.Réponses:
Vous pouvez ajouter la configuration ci-dessous à votre fichier .htaccess. Mais avant cela, assurez-vous que mod_rewrite est activé sur le serveur et que le fichier .htaccess n'est pas refusé.
Pour des explications détaillées, veuillez consulter la documentation officielle de aws end. https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/
la source
Depuis juillet 2018 , cela est pris en charge sur les équilibreurs de charge d'application.
HTTP:80
écouteurRedirect
https
443
Original host, path, query
301 - Permanently moved
Image des paramètres d'un écouteur HTTP vers HTTPS sur l'équilibreur de charge d'application AWS
la source
Habituellement, ce qui se passe est que l'ELB est configuré pour recevoir https (port 443) et transmettre à l'instance EC2 (cible de l'équilibreur de charge) sur http (port 80).
Le serveur Web principal redirige ces demandes vers le port 443 sur l'équilibreur de charge, provoquant une boucle infinie de redirection (entre l'équilibreur de charge et le serveur Web principal).
Un message d'erreur courant est
ERR_TOO_MANY_REDIRECTS
.La solution consiste à examiner le X-Forwarded-Proto, qui est le protocole tel que vu par l'équilibreur de charge, lors de la décision de redirection.
Pour nginx, la configuration ressemblera à ceci:
et pour apache .htaccess quelque chose comme ceci:
REMARQUE: Bien que l'on puisse penser qu'il serait pratique de gérer cela sans reconfiguration du serveur Web, au printemps 2018, il n'y a aucun moyen de résoudre ce problème en utilisant uniquement ELB, c'est-à-dire que vous devez configurer votre serveur Web pour que cela fonctionne.
la source