Não é possível alterar o HTTPS para HTTP no Nginx

2

Meu problema é descrito no título deste tópico.

Eu tenho um servidor web rodando por nginx. Eu registrei um nome de domínio livre .tk e instalei o certificado Vamos Criptografar. A seguinte configuração é meu HTTPS:

if ($ssl_protocol = "") {
     rewrite ^ https://$server_name$request_uri? permanent;
}

Mas agora eu removo toda a configuração HTTPS no Nginx e não consigo acessar o link . Eu também limpo o cache no navegador, mas não funciona.

Atualizar

Meu nginx.conf

#user  nobody;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    keepalive_timeout  65;

    gzip  on;

    server {
        listen       80;
        # listen       443 ssl;
        server_name  xxx.tk;


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }


        # TLS configurations
  #       ssl_certificate      /etc/letsencrypt/live/xxx.tk/fullchain.pem;
  #       ssl_certificate_key  /etc/letsencrypt/live/xxx.tk/privkey.pem;

        # ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  #       ssl_prefer_server_ciphers  on;
        # ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";

        # add_header Strict-Transport-Security max-age=15768000;

        # if ($ssl_protocol = "") {
        #   rewrite ^ https://$server_name$request_uri? permanent;
        # }

        location / {
            index index.php index.html index.htm;
        }
        location /files {
            autoindex on;
        }

        location ~ \.php$ {
            root /home/tester/local/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

    }

}

Dos comentários:

  • Eu reiniciei o daemon depois de modificar a configuração.

  • O Nginx também está escutando na porta 80, confirmada com:

    netstat -pltun
    
  • Limpei tudo no meu navegador. Mas ainda não funciona.

por K.Lotus 10.05.2016 / 11:59

3 respostas

1

A causa mais provável da impossibilidade de reverter HTTPS de volta para HTTP é a seguinte linha:

# add_header Strict-Transport-Security max-age=15768000;

Agora, está comentado, mas é provável que você tenha testado.

Seu erro, porém, porque todo guia de HSTS deve lhe dizer, você deve aumentar o valor de tempo de acordo com sua confiança em poder entregar o domínio em HTTPS.

    
por 18.07.2018 / 23:27
0

Os navegadores costumam armazenar em cache http 301, link é uma boa leitura.

Funciona em um navegador que você não usou antes no site?

Abra também as ferramentas de desenvolvimento do seu navegador para ver se ele ainda está recebendo o redirecionamento depois de limpar o cache

    
por 10.05.2016 / 12:07
0

É útil lembrar primeiro que se é mal .

Além disso, todas as solicitações de entrada de https irão para a porta 443 por padrão. As solicitações de entrada normalmente estarão falando como ssl, portanto, convém desativar essa opção para a reescrita. Em vez de usar if, um bloco como esse apontará tudo no seu ouvinte http:

server {
  listen 443;
  server_name _;
  ssl off;
  rewrite ^ http://$server_name$request_uri?$args permanent;
}

A melhor prática é ter seus servidores http e https definidos separadamente - um por porta que você está ouvindo. Ele facilita a solução de problemas e proporciona menos dores de cabeça.

    
por 19.05.2016 / 15:09