Segurança SSL/TLS: HTTPS, HSTS e certificados

HTTPS não é mais opcional. Entenda como SSL/TLS protege seu site, como configurar certificados e como garantir que a conexão é realmente segura.

O que é SSL/TLS

SSL (Secure Sockets Layer) e seu sucessor TLS (Transport Layer Security) são protocolos criptográficos que garantem a comunicação segura entre o navegador do usuário e o servidor web. Quando um site usa HTTPS, significa que a conexão é protegida por TLS.

O TLS fornece três garantias fundamentais:

  • Confidencialidade: os dados são criptografados e não podem ser lidos por intermediários.
  • Integridade: os dados não podem ser alterados em trânsito sem detecção.
  • Autenticidade: o certificado garante que você está conectado ao servidor correto, não a um impostor.

SSL está obsoleto. As versões SSL 2.0 e 3.0 possuem vulnerabilidades conhecidas (POODLE, DROWN). Sempre use TLS 1.2 ou superior. TLS 1.3 é a versão recomendada atualmente.

Por que a falta de HTTPS é perigosa

Sem HTTPS, toda a comunicação entre o navegador e o servidor trafega em texto plano:

  • Senhas e dados pessoais podem ser interceptados em redes Wi-Fi públicas
  • Provedores de internet podem injetar anúncios ou scripts na página
  • Atacantes podem alterar o conteúdo da página em trânsito (MITM)
  • Cookies de sessão podem ser roubados (session hijacking)
  • Google penaliza sites HTTP no ranking de busca
  • Navegadores exibem alertas de “Não seguro” para os visitantes

Além de HTTPS, o header HSTS é essencial para evitar ataques de downgrade, onde o atacante força a conexão de volta para HTTP.

Como o SAFETAGGY detecta

O SAFETAGGY verifica múltiplos aspectos da configuração SSL/TLS:

  • Varredura básica: verifica se o site redireciona HTTP para HTTPS, presença e qualidade do header HSTS (max-age, includeSubDomains, preload), e validade do certificado.
  • Deep Scan (pentest IA): utiliza testssl.sh para uma análise completa do certificado e configuração TLS, incluindo: protocolos suportados (TLS 1.0/1.1/1.2/1.3), cipher suites, vulnerabilidades conhecidas (Heartbleed, BEAST, POODLE, ROBOT), cadeia de certificados e configuração OCSP.

Verifique a segurança SSL/TLS do seu site em segundos.

Como configurar

1. Let's Encrypt (certificado gratuito)

Let's Encrypt oferece certificados SSL/TLS gratuitos com renovação automática. É a opção recomendada para a maioria dos sites:

# Instalar Certbot (Ubuntu/Debian)
sudo apt install certbot python3-certbot-nginx

# Obter certificado e configurar Nginx automaticamente
sudo certbot --nginx -d seusite.com.br -d www.seusite.com.br

# Renovação automática (já configurada pelo Certbot)
# Verificar: sudo certbot renew --dry-run

# Cron job de renovação (adicionado automaticamente)
# 0 0,12 * * * certbot renew --quiet

2. Nginx (configuração SSL otimizada)

server {
    listen 80;
    server_name seusite.com.br www.seusite.com.br;
    # Redirecionar todo HTTP para HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name seusite.com.br www.seusite.com.br;

    # Certificados
    ssl_certificate /etc/letsencrypt/live/seusite.com.br/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/seusite.com.br/privkey.pem;

    # Protocolos — apenas TLS 1.2 e 1.3
    ssl_protocols TLSv1.2 TLSv1.3;

    # Cipher suites seguras
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    # HSTS com preload
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/letsencrypt/live/seusite.com.br/chain.pem;
    resolver 1.1.1.1 8.8.8.8 valid=300s;

    # Session tickets
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
}

3. Apache

# Redirecionar HTTP para HTTPS
<VirtualHost *:80>
    ServerName seusite.com.br
    Redirect permanent / https://seusite.com.br/
</VirtualHost>

<VirtualHost *:443>
    ServerName seusite.com.br
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/seusite.com.br/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/seusite.com.br/privkey.pem

    # Apenas TLS 1.2+
    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

    # HSTS
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
</VirtualHost>

4. HSTS Preload

O HSTS Preload é uma lista mantida pelos navegadores com domínios que devem ser acessados exclusivamente via HTTPS. Uma vez incluído, mesmo a primeira visita será via HTTPS:

  • Configure HSTS com max-age=63072000 (2 anos), includeSubDomains e preload
  • Certifique-se de que TODOS os subdomínios suportam HTTPS
  • Submeta seu domínio em hstspreload.org

Atenção: a inclusão na lista de preload é difícil de reverter. Certifique-se de que todos os subdomínios funcionam com HTTPS antes de submeter.

Checklist de segurança SSL/TLS

  • Redirecionar todo tráfego HTTP para HTTPS (301 redirect)
  • Usar TLS 1.2 ou superior (desabilitar TLS 1.0 e 1.1)
  • Configurar HSTS com max-age de pelo menos 1 ano
  • Incluir includeSubDomains no HSTS
  • Usar cipher suites modernas (ECDHE + AES-GCM)
  • Habilitar OCSP Stapling para melhor performance
  • Configurar renovação automática do certificado
  • Testar regularmente no SSL Labs (nota A ou A+)
  • Considerar HSTS Preload para proteção máxima

Teste seu site agora

O SAFETAGGY verifica automaticamente a configuração SSL/TLS do seu site, incluindo HTTPS, HSTS, certificado e protocolos suportados. Para uma análise completa com testssl.sh, use o Deep Scan.

Fazer varredura gratuita