Adicionando HSTS à configuração nginx

2

Recentemente, mudei minha configuração do nginx para redirecionar todo o tráfego HTTP para https (e todo o tráfego www para não-www).

Faz sentido também adicionar add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; aos meus blocos de servidores? Ou isso é desnecessário, já que eu já estou redirecionando todo o tráfego? Seria ótimo conhecer os prós (e contras, se houver).

Caso seja relevante, minha configuração atual do host virtual é:

server {
    server_name example.com www.example.com;

    listen 80;

    return 301 https://example.com$request_uri;
}

server {
    server_name www.example.com;

    listen 443 ssl;

    ssl_certificate /etc/nginx/ssl/cert_chain.crt;
    ... other SSL related config ...

    return 301 https://example.com$request_uri;
}

server {
    server_name example.com;

    listen 443 ssl;
    ... other SSL related config ...

    ... remaining server configuration ...
}
    
por Hassan Baig 22.09.2017 / 00:08

1 resposta

7

O HSTS informa ao navegador para sempre usar https, em vez de http. Adicionar essa configuração pode reduzir a necessidade de encaminhamento de http para https, portanto, pode muito pouco aumentar o desempenho do website e muito ligeiramente diminuir a carga do servidor.

Para referência, aqui estão os cabeçalhos de segurança que uso em meus sites baseados em Nginx. Salvei isso em um único arquivo e incluí-lo em todos os servidores que precisam dele, incluindo servidores http e https. Ele permite que alguns recursos comuns, como Google e Facebook, sejam carregados.

# Security headers
add_header Strict-Transport-Security "max-age=2592000; includeSubDomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header Content-Security-Policy "default-src 'self' www.google-analytics.com ajax.googleapis.com www.google.com google.com gstatic.com www.gstatic.com connect.facebook.net facebook.com;";
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "origin";

Esclarecimento

Você ainda precisa do redirecionamento http para https no lugar.

    
por 22.09.2017 / 00:26