Como configurar e ativar HTTP/2 e HSTS no NGiNX para melhor desempenho e segurança

Aprenda a configurar e ativar o Nginx para suportar HTTP/2 e habilitar o HSTS, melhorando o desempenho e a segurança do seu site

Como configurar e ativar HTTP/2 e HSTS no NGiNX para melhor desempenho e segurança

Introdução

O HTTP/2 é a versão mais recente do protocolo HTTP, trazendo melhorias significativas de desempenho e eficiência para a web moderna. Neste tutorial, mostraremos como configurar o Nginx para suportar HTTP/2 e habilitar o HTTP Strict Transport Security (HSTS) para maior segurança.

Pré-requisitos

  • Um servidor com Nginx instalado (compatível com Debian e Ubuntu)
  • Um domínio apontando para o seu servidor
  • Um certificado SSL/TLS válido configurado

Passo 1: Habilitando o Suporte ao HTTP/2

Abra o arquivo de configuração do seu domínio:

sudo nano /etc/nginx/sites-enabled/seu_dominio

Modifique as diretivas listen para incluir http2:

listen 443 ssl http2;
listen [::]:443 ssl http2;

Passo 2: Atualizando as Cifras SSL

Para melhorar a segurança, atualize a lista de cifras SSL:

ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

Passo 3: Habilitando o HSTS

Adicione a seguinte linha ao bloco do servidor para habilitar o HSTS:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Esta configuração:

  • Define o max-age para 1 ano (31536000 segundos)
  • Aplica o HSTS a subdomínios com includeSubDomains
  • Permite a inclusão na lista de pré-carregamento HSTS dos navegadores com preload

Passo 4: Verificando e Aplicando as Alterações

Verifique a configuração do Nginx:

sudo nginx -t

Se não houver erros, recarregue o Nginx:

sudo systemctl reload nginx

Passo 5: Verificando o HTTP/2

Use o comando curl para verificar se o HTTP/2 está ativo:

curl -I -L --http2 https://seu_dominio

Você deve ver HTTP/2 200 na resposta.

Benefícios do HTTP/2 e HSTS

  1. Melhor Desempenho: O HTTP/2 permite múltiplas requisições simultâneas, compressão de cabeçalhos e push de servidor.

  2. Segurança Aprimorada: O HSTS força conexões HTTPS, protegendo contra ataques de downgrade e man-in-the-middle.

  3. Experiência do Usuário Otimizada: Carregamento mais rápido de páginas e maior confiabilidade.

Conclusão

Ao implementar HTTP/2 e HSTS, você melhora significativamente o desempenho e a segurança do seu site.


FAQ

Pergunta e respostas frequentes sobre o conteúdo.

HTTP/2 é uma versão mais recente do protocolo HTTP que melhora o desempenho da web, permitindo downloads paralelos, compressão de cabeçalhos e transferências binárias mais eficientes.

Os pré-requisitos incluem um servidor com Nginx instalado, um domínio configurado, um certificado SSL/TLS válido e redirecionamento de tráfego HTTP para HTTPS.

Modifique as diretivas 'listen' no arquivo de configuração do domínio para incluir 'http2', como 'listen 443 ssl http2

Remover cifras antigas e inseguras melhora a segurança do servidor e é necessário para a compatibilidade com HTTP/2.

Use o comando 'curl -I -L --http2 https://seu_dominio' ou verifique no Chrome DevTools na coluna 'Protocol' por 'h2'.

HSTS (HTTP Strict Transport Security) força conexões HTTPS, evitando redirecionamentos e protegendo contra ataques de downgrade de protocolo.

Adicione a linha 'add_header Strict-Transport-Security "max-age=15768000

O 'max-age' define por quanto tempo (em segundos) o navegador deve lembrar de usar apenas HTTPS para o site.

Use 'sudo nginx -t' para verificar erros de sintaxe e 'sudo systemctl reload nginx.service' para aplicar as alterações.

Você pode testar a força da sua conexão SSL no site Qualys SSL Lab (https://www.ssllabs.com/ssltest/).

Por razões de segurança, os principais navegadores suportam HTTP/2 apenas em conexões HTTPS.

HTTP/2 permite downloads paralelos, compressão de cabeçalhos e transferências binárias, resultando em carregamentos de página mais rápidos.


Giancarlo Gil Ottaviani Raduan
Me pague um café no NuBank do Giancarlo Gil Ottaviani Raduan

Especialista linux, desenvolvedor web full-stack, PHP no sangue, graduando em Direito, pai da Lais e esposo da Simone


Talvez você goste destes outros tutoriais