Obelica Docs
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.com resta produzione su Vercel/hosting esistente finche' ogni app non e' pronta;
  • *.vps.obelica.com e' staging VPS su Traefik;
  • vps.obelica.com e' hostname base VPS e punta al servizio diagnostico whoami;
  • test.obelica.com resta 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.com e *.vps.obelica.com puntati al Reserved IP 129.212.141.97;
  • router app aggiornati per usare solo Host(<app>.vps.obelica.com);
  • router whoami aggiornato per rispondere a test.obelica.com e vps.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 authorization nei log possono restare come storico;
  • eventuali nuovi errori non devono piu' includere host *.obelica.com nei 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.json

Variabili da verificare:

TRAEFIK_ACME_EMAIL

Permessi su acme.json:

chmod 600 /opt/obelica/infra/traefik/letsencrypt/acme.json

Verifica

Da fuori:

dig +short <app>.vps.obelica.com
curl -Iv https://<app>.vps.obelica.com

Dovrebbe 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 -dates

Da dentro il server:

cd /opt/obelica/infra/traefik
docker compose logs --tail=100 traefik | grep -i acme

Possibili cause

  • acme.json mancante o con permessi errati;
  • TRAEFIK_ACME_EMAIL non 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

  1. Mantenere *.vps.obelica.com su 129.212.141.97.
  2. Mantenere *.obelica.com su Vercel/hosting esistente finche' la singola app non viene migrata.
  3. Verificare che i router staging non contengano host produzione.
  4. Testare feature e cron app per app su staging.
  5. 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.com solo nel momento dello switch produzione.

On this page