Vlastné certifikáty v kóde neinštaluješ. Na produkcii ich rieši hosting:
| Prostredie | HTTPS |
|---|---|
| Vercel (odporúčané) | Automatický Let's Encrypt pre https://tvoja-app.vercel.app |
| Lokálny vývoj | http://localhost:3000 (normálne) |
| Lokálny HTTPS test | npm run dev:https → self-signed cert (prehliadač môže varovať) |
Po deployi na Vercel máš vždy HTTPS — nič ďalšie nekupuješ.
- HSTS — prehliadač používa len HTTPS (produkcia)
- Presmerovanie HTTP → HTTPS (produkcia, cez
x-forwarded-proto) - Content-Security-Policy — obmedzenie skriptov a pripojení (Supabase)
- X-Frame-Options, nosniff, Referrer-Policy, COOP/CORP
- Secure cookies pre Supabase session (produkcia)
- Kalendár API — len pre prihláseného používateľa
- OAuth redirect — blokovanie open redirect (
next=)
- Nikdy necommituj
.env.local(je v.gitignore). - V Vercel → Environment Variables daj rovnaké premenné ako lokálne.
- V Supabase → Authentication → URL Configuration:
- Site URL:
https://tvoja-app.vercel.app - Redirect URLs:
https://tvoja-app.vercel.app/**
- Site URL:
- V Google Cloud OAuth redirect len Supabase callback, nie Vercel URL.
- V Supabase zapni RLS na všetkých tabuľkách (SQL v
supabase/). - Google Client Secret a Refresh token len na serveri (nie
NEXT_PUBLIC_).
Ak unikli kľúče z .env.local:
- Supabase → reset anon key (ak treba).
- Google Cloud → nový Client Secret, nový refresh token.
- Vercel → aktualizuj env a Redeploy.
- Bez vlastného servera závisíš na Supabase + Vercel (ich certifikáty a infra).
- Plný offline režim nie je súčasťou bezpečnostného balíka.
- WAF / DDoS rieši Vercel na vyšších plánoch; free tier má základnú ochranu.