nginx, o redirecionamento http para https não funciona como esperado

1

Minha intenção é redirecionar todas as solicitações para https:// de URLs prefixados para o domínio sem cobertura e para o www.* equivalente. A URL acme-challenge deve ser excluída.

Eu tentei com a configuração abaixo e fui redirecionado corretamente do domínio sem código, mas quando visito o www. prefixado, sou apresentado ao servidor padrão, não redirecionado para o servidor na porta 443 e servido de a raiz do servidor https.

Por que isso acontece?

server {
        listen 80;
        listen [::]:80;

        server_name example.org www.example.org;

        location '/.well-known/acme-challenge/' {
                root /var/www/challenges;
        }

        location / {
                return 301 https://$host$request_uri;
        }
}

server {
        listen 443 ssl;
        listen [::]:443 ssl;

        server_name example.org www.example.org;

        ssl_certificate /etc/nginx/ssl/example.org.pem;
        ssl_certificate_key /etc/nginx/ssl/example.org.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
        ssl_session_cache shared:SSL:50m;
        ssl_dhparam /etc/nginx/ssl/dhparams.pem;
        ssl_prefer_server_ciphers on;

        root /var/www/example.org/;
}
    
por jvc26 31.12.2015 / 18:24

0 respostas