aulify · Mini-Projecto
UC UC00627 · T. Desenv. Software, T. Sist. Comp. Redes
Versão · Aluno
Mini-Projecto · Alojar 2 sites com HTTPS
Servidor web seguro com virtual hosts e TLS
Contexto
Cada par/trio configura, numa VM Ubuntu, um servidor web que aloja 2 sites distintos (virtual hosts): um estático e um dinâmico (PHP ou reverse proxy para app). Ambos com HTTPS, hardening e plano de testes. (Sem domínio real: usar /etc/hosts e certificado self-signed/staging; com domínio: Let's Encrypt real.)
Requisitos
Funcionais
- VM Ubuntu com Nginx (ou Apache).
- 2 virtual hosts:
siteA.local(estático) esiteB.local(PHP ou proxy para app). - HTTPS nos dois (self-signed/staging local, ou Let's Encrypt se houver domínio).
- Redirect HTTP→HTTPS.
- Hardening: firewall, headers de segurança, versão escondida, permissões.
- Plano de testes executado.
Não-funcionais
- Runbook reproduzível.
- Logs separados por site.
- Backup das configs.
Fases
Fase 1 · 1h
Base + instalação
- VM, updates, utilizador sudo, firewall, Nginx.
Nginx a responder (curl) + ufw configurado.
Fase 2 · 1.5h
2 virtual hosts
- siteA estático; siteB PHP (ou proxy para app simples).
/etc/hostsa mapear os nomes; logs por site.
Os 2 sites a responder por nome (HTTP).
Fase 3 · 1.5h
HTTPS
- Certificado (Let's Encrypt se domínio; senão self-signed) nos 2.
- Redirect HTTP→HTTPS.
Os 2 sites em HTTPS + redirect.
Fase 4 · 1h
Hardening
- server_tokens off, headers de segurança, autoindex off, permissões.
Checklist de hardening + provas.
Fase 5 · 1h
Testes + runbook
- Plano de testes (códigos, TLS, isolamento entre sites).
Relatório de testes + runbook + demo 5 min.
Critérios de avaliação
| Item | Peso |
|---|---|
| Instalação + firewall | 10% |
| 2 virtual hosts funcionais | 25% |
| Conteúdo dinâmico (PHP/proxy) | 15% |
| HTTPS + redirect | 20% |
| Hardening | 20% |
| Testes + runbook | 10% |
Reflexão
Em meia página: o que foi mais difícil (virtual hosts, TLS, hardening)? Como isolarias melhor os dois sites? Que passos farias diferente num servidor exposto à Internet real?