La redirection de http vers https à l'aide de la règle de réécriture à l'aide d'AWS envoie toutes les demandes à la racine Web par défaut au lieu d'utiliser ProxyPass


kz2014

J'ai un serveur Web Apache fonctionnant sur une instance AWS EC2 sur le port 80. J'ai un ELB avec un certificat. Toutes les demandes sont interceptées par l'ELB et transmises à mon instance EC2, où mon serveur Web écoute les appels.

Lorsqu'un trafic http arrive, je le redirige vers https en utilisant la règle donnée ci-dessous qui est présente dans mon fichier http-vhosts.conf:

<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

</VirtualHost>

Maintenant, dans mon http-vhosts.conf, je redirige tout trafic venant vers le port 443 (qui est le port https par défaut) en utilisant proxypass comme indiqué ci-dessous:

<VirtualHost *:443>
    ServerName www.mywebsite.com

    ProxyRequests Off
    ProxyPreserveHost On

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
</VirtualHost>

Supposons maintenant que je passe un appel à:

http://www.mywebsite.com

Il est redirigé vers:

https://www.mywebsite.com

Mais ce lien sert maintenant le fichier index.html présent dans ma webroot par défaut donné dans le fichier httpd.conf, au lieu de le rediriger en utilisant ProxyPass. Quelqu'un peut-il me dire où je vais mal?

Chris

Si vous mettez fin à SSL sur l'ELB et que la communication entre ELB et EC2 s'effectue uniquement sur le port 80, votre configuration de proxy ne sera jamais appelée.

Pour résoudre ce problème, vous avez deux options: La première consiste à ajouter la configuration du proxy (les paramètres que vous avez dans l'entrée *: 443 VirtualHost) à l'entrée *: 80.

La deuxième option serait d'ajouter configurer l'ELB pour parler à votre instance EC2 sur 443 ainsi que 80. Vous devrez installer et configurer SSL et un certificat approprié (auto-signé fera l'affaire).

Articles connexes