Sicurezza
Certificati TLS
Stato certificati HTTPS e piano per Let's Encrypt
Stato attuale
I certificati staging app sono trusted su *.vps.obelica.com.
Decisione attuale:
*.obelica.comresta produzione su Vercel/hosting esistente finche' ogni app non e' pronta;*.vps.obelica.come' staging VPS su Traefik;vps.obelica.come' hostname base VPS e punta al servizio diagnosticowhoami;test.obelica.comresta endpoint di test Traefik.
Durante l'audit 2026-06-22 molte app rispondevano correttamente se forzate verso Traefik locale, ma i domini pubblici app *.obelica.com risolvevano verso IP 216.150.* invece che verso 129.212.141.97. Questo causava fallimenti Let's Encrypt quando i router includevano insieme produzione e staging.
Correzione applicata il 2026-06-22:
- record DNS
vps.obelica.come*.vps.obelica.compuntati al Reserved IP129.212.141.97; - router app aggiornati per usare solo
Host(<app>.vps.obelica.com); - router
whoamiaggiornato per rispondere atest.obelica.comevps.obelica.com; - container app ricreati con
docker compose up -d; - verifica HTTPS completata su tutte le app candidate con
ssl_verify_result=0.
Impatto:
- i vecchi errori
invalid authorizationnei log possono restare come storico; - eventuali nuovi errori non devono piu' includere host
*.obelica.comnei router staging; - non bisogna fare switch produzione finche' la singola app non e' stata validata su staging.
Configurazione attesa
Traefik dovrebbe richiedere certificati Let's Encrypt tramite HTTP challenge.
File chiave:
/opt/obelica/infra/traefik/docker-compose.yml
/opt/obelica/infra/traefik/.env
/opt/obelica/infra/traefik/letsencrypt/acme.jsonVariabili da verificare:
TRAEFIK_ACME_EMAILPermessi su acme.json:
chmod 600 /opt/obelica/infra/traefik/letsencrypt/acme.jsonVerifica
Da fuori:
dig +short <app>.vps.obelica.com
curl -Iv https://<app>.vps.obelica.comDovrebbe risolvere a 129.212.141.97 e restituire certificato Let's Encrypt.
Dettaglio certificato:
openssl s_client -connect <app>.vps.obelica.com:443 -servername <app>.vps.obelica.com </dev/null 2>/dev/null | openssl x509 -noout -issuer -subject -datesDa dentro il server:
cd /opt/obelica/infra/traefik
docker compose logs --tail=100 traefik | grep -i acmePossibili cause
acme.jsonmancante o con permessi errati;TRAEFIK_ACME_EMAILnon impostato;- DNS staging non risolto correttamente verso il droplet;
- Traefik non riesce a raggiungere Let's Encrypt (firewall/uscita 443);
- configurazione ACME commentata o mancante nel compose.
Piano
- Mantenere
*.vps.obelica.comsu129.212.141.97. - Mantenere
*.obelica.comsu Vercel/hosting esistente finche' la singola app non viene migrata. - Verificare che i router staging non contengano host produzione.
- Testare feature e cron app per app su staging.
- Migrare produzione app per app solo dopo smoke test e piano rollback.
Note
- Non forzare i browser utente ad accettare certificati non trusted in produzione.
- Se si aggiunge una nuova app, prima pubblicarla su
<app>.vps.obelica.com; aggiungere<app>.obelica.comsolo nel momento dello switch produzione.