Apache com SSL
Como configurar o Apache com HTTPS num servidor Debian: VirtualHost para as portas 80 e 443, redirecionamento 301, certificado gratuito da Let's Encrypt, HSTS e HTTP/2.
Vamos configurar um servidor Apache para servir um site com HTTPS, desde o VirtualHost básico até cifras seguras e HTTP/2. Se já tens um domínio apontado para o servidor, este tutorial é para ti.
Nota: Este tutorial assume Debian 12 (ou derivado) com Apache 2.4. O meu servidor corre Apache 2.4 (Debian 13) com os módulos ssl, rewrite, proxy, headers e http2 ativos.
1. Ativar os módulos necessários
Antes de tudo, garante que o Apache tem os módulos certos ligados:
Dica: O módulo http2 é opcional mas recomendado — melhora o desempenho em sites com muitos recursos (imagens, scripts, folhas de estilo). O headers é necessário para o HSTS.
2. Como funciona o redirect HTTP → HTTPS
Antes de escrevermos configuração, vale a pena perceber o fluxo:
O browser tenta HTTP → Apache responde com 301 → Browser refaz pedido com HTTPS → Apache serve conteúdo seguro
3. Configuração do VirtualHost
Cria o ficheiro de configuração:
Estrutura do ficheiro de configuração com VirtualHost para portas 80 e 443
Agora, cola o seguinte conteúdo e ajusta o domínio. Não atives o site já: o bloco :443 aponta para certificados que só existem depois do passo 5, e o Apache não arranca com ficheiros em falta. A ativação fica para o passo 6.
Atenção: O HSTS com preload é um compromisso sério. Se um dia precisares de voltar atrás, vais ter de esperar que o teu domínio saia da lista de preload. Usa max-age=31536000 (1 ano) se quiseres ser mais conservador.
4. Criar o diretório do site
5. Obter certificado SSL com Let's Encrypt
Este é o passo que torna tudo possível sem gastar dinheiro. Vê como o processo funciona:
Como o Certbot + Let's Encrypt emitem e renovam certificados automaticamente
O Certbot faz o seguinte automaticamente:
- Contacta o servidor Let's Encrypt
- Verifica que és dono do domínio (coloca um ficheiro no teu servidor)
- Gera os certificados
- Atualiza a configuração do Apache
- Configura a renovação automática (via systemd timer)
Para verificar se a renovação automática está ativa:
Nota: Os certificados Let's Encrypt duram 90 dias. O certbot.timer corre duas vezes por dia e renova automaticamente quando o certificado se aproxima do fim (nas versões recentes do Certbot, quando falta cerca de um terço da validade). Não tens de fazer nada.
6. Ativar o site e testar
Agora testa com o browser:
- http://dominio.exemplo.pt → deve redirecionar para https://
- https://dominio.exemplo.pt → deve mostrar o conteúdo do site
Podes também testar com openssl para veres os detalhes da ligação:
7. O que acontece durante o SSL Handshake
Quando o browser faz HTTPS, antes de qualquer dado ser transferido, ocorre o SSL/TLS Handshake — é a dança entre cliente e servidor para estabelecer uma ligação segura:
As 5 fases do SSL Handshake — do ClientHello à conexão segura
8. Verificação externa (recomendado)
Navega até https://www.ssllabs.com/ssltest/ e insere o teu domínio. Com esta configuração deves obter A ou A+ (se ativaste HSTS).
9. Firewall? Não te esqueças
Se tiveres um firewall ativo (UFW, iptables, nftables), garante que as portas 80 e 443 estão abertas:
Recapitulando
- Ativámos os módulos necessários (ssl, headers, http2)
- Configurámos VirtualHost com redirect 301 e SSL reforçado
- Criámos o diretório com permissões corretas
- Obtivemos certificado grátis com Let's Encrypt
- Ativámos HSTS e HTTP/2
- Testámos e verificámos com ferramentas externas
O teu servidor Apache está agora a servir conteúdo de forma segura, com boas práticas de segurança e bom desempenho.
Recursos
Partilhar
Comentários 0
Ainda sem comentários — sê o primeiro.