Redirecionar Loop SSL Nginx Cloudflare

2

Eu tenho o SSL universal com o CloudFlare. Eu queria configurar um redirecionamento SSL permanente no meu blog do Ghost.

Esta foi a minha configuração original. Funciona muito bem usando o link e o link

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

server_name example.com; # Replace with your domain

root /usr/share/nginx/html;
index index.html index.htm;

client_max_body_size 10G;

location / {
    proxy_pass http://localhost:2368;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_buffering off;
}
}

Esta é a minha tentativa de configuração para um redirecionamento de HTTP para HTTPS, mas resulta em um loop de redirecionamento

server {
   listen      80 default_server;
   server_name example.com;
   return      301 https://example.com$request_uri;
}

server {
   listen   443 ssl;
   ssl      on;
   ssl_certificate /etc/nginx/ssl/cert/example.crt;
   ssl_certificate_key /etc/nginx/ssl/private/example.key;
   ssl_session_cache  shared:SSL:10m;
   ssl_session_timeout 5m;
   server_name example.com; # Replace with your domain
   root /usr/share/nginx/html;
   index index.html index.htm;

   client_max_body_size 10G;

    location / {
       proxy_pass http://localhost:2368;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host $http_host;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_buffering off;
   }
}

Não tenho certeza absoluta do motivo de seu looping.

    
por fortune 16.10.2014 / 00:24

4 respostas

2

Eu não tenho representante suficiente para adicionar um comentário acima, mas também experimentei esse problema e a única maneira que consegui contornar foi desativar o CloudFlare para a entrada DNS específica, o que obviamente não é o ideal.

Com base nisso, parece que é um problema com o modo como o CloudFlare está implementando o SSL universal para entradas DNS que já possuem SSL (com redirecionamentos de HTTP para HTTPS) ativado. Além disso, não parece que você pode desativar o CloudFlare SSL para entradas DNS específicas.

Desculpe, não posso ser mais útil, mas se eu encontrar uma solução, eu definitivamente postarei aqui.

    
por 17.10.2014 / 11:52
1

Inspirado na resposta de Pascal, tentei modificar o tipo de conexão entre o cloudflare e meu servidor de ssl flexível para ssl completo . Para mim funciona assim.

Em retrospectiva, parece lógico, porque com ssl flexível o fluxo é:

  1. o usuário se conecta por meio do ssl ao cloudflare
  2. o cloudflare se conecta através do http simples ao servidor
  3. o servidor emite um redirecionamento como uma resposta
  4. o cloudflare encaminha a resposta para o cliente (o redirecionamento)
  5. enxague e repita

Se eu ativar full ssl , o redirecionamento não ocorrerá mais, porque o cloudflare se conecta ao servidor por meio do ssl.

    
por 06.03.2015 / 20:31
0

Eu tive o mesmo problema e acabei definindo url e urlSSL no config.js do Ghost. Isso não forçará SSL, mas se um usuário chegar ao blog por meio de https, a configuração disso garantirá que toda a navegação futura também seja feita por meio de https.

Antes, se um usuário clicasse em uma postagem de blog e clicasse em qualquer outro link interno, esse link seria exibido por meio de http, juntamente com todas as outras solicitações futuras. A configuração da propriedade urlSSL corrige pelo menos.

url: http://blog.example.com,
urlSSL: https://blog.example.com

Referências: link

    
por 17.02.2015 / 23:23
0

Acabei de me deparar com este mesmo problema na minha instância fantasma e falei um pouco sobre isso aqui:

link

Acontece que eu tive dois problemas de redirecionamento infinito [(┛◉Д◉) ┛ 彡 ┻━┻], um com a configuração do meu servidor, e um com a configuração do meu cloud-flare.

Para usar o SSL com o cloud-flare, você precisará:

  • Vá para a guia Visão geral > Resumo das configurações > Clique em SSL e mude o SSL de "Flexível" para "Completo (Estrito)".
    • Isso também pode ser encontrado na guia "Criptografia" > SSL > Clique em SSL e mude o SSL de "Flexível" para "Completo (Estrito)".

Como você se refere a um proxy com a porta 2368 no seu vHost, parece lógico que você também esteja executando o Ghost. (Eu percebo que este não é o único software em execução nessa porta.)

  • Verifique seu config.js para garantir que url: esteja direcionado para http e não https .
por 26.11.2016 / 12:17