AWS redirecionando para SSL ERR_TOO_MANY_REDIRECTS

1

Precisando redirecionar para https. O mesmo (na raiz (diretório html)) funciona em outros servidores, mas não no AWS (.htaccess):

RewriteEngine On
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://there.com/$1 [R,L]

Balanceador de carga (tipo: aplicativo) em Ouvintes é:

HTTP: 80, Visualizar / editar regras > HTTPS: 80 > IF Solicita de outra forma não encaminhado ENTÃO Reencaminhar para service-http

HTTPS: 443, Visualizar / editar regras > HTTPS: 443 > IF Solicita de outra forma não roteado ENTÃO Encaminhar para service-http.

No etc / httpd / conf / httpd.conf não há nada no VirtualHost *: 80 ou no VirtualHost *: 443

Se eu omitir as regras do .htaccess, não será reencaminhado para https.

Onde mais devo procurar?

PS. "Não está funcionando" significa "ERR_TOO_MANY_REDIRECTS".

    
por Konservin 28.09.2018 / 19:50

1 resposta

2

Corrija-me se estiver errado - você tem um ALB Listener que escuta HTTP (80) e HTTPS (443) e, em ambos os casos, encaminha a solicitação para o backend por HTTP (80), correto?

Se esse for o caso, o backend vê SERVER_PORT = 80 em ambos os casos, porque é assim que o balanceador de carga fala com ele. Não há HTTPS entre o balanceador de carga e o back-end, portanto, a porta é sempre 80 no que diz respeito ao back-end.

Para fazer isso funcionar, você terá que inspecionar X-Forwarded-Proto cabeçalho HTTP e usar isso no RewriteCond assim:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Espero que ajude:)

    
por 29.09.2018 / 02:31