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.
O que vais aprender:
- Configurar um VirtualHost para HTTP e HTTPS
- Redirecionamento forçado (301) de HTTP para HTTPS
- Obter certificados SSL grátis com Let's Encrypt
- Boas práticas de segurança: cipher suites, HSTS, HTTP/2
- Verificar que está tudo bem (e manter-se assim)
Nota: Este tutorial assume Debian 12 (ou derivado) com Apache 2.4. O meu servidor corre Apache/2.4.67 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: traz performance extra em sites com muitos assets. 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:
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 se faltarem menos de 30 dias. 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 conexã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 conexã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 performance.
Comentários (0)
Nenhum comentário ainda. Seja o primeiro!
Deixar comentário