Soluzione della community

HTTPS su CasaOS per principianti: reverse proxy, ZeroTier, Cloudflare Tunnel e TLS

A short April-June 2024 CasaOS thread from a Raspberry Pi 5 user asking for an easy HTTPS setup. The only reply suggested ZeroTier, Cloudflare Tunnel, or a domain plus Nginx reverse proxy. Its claim that ZeroTier could read the user's HTTP traffic is contradicted by current ZeroTier documentation, which says traffic is end-to-end encrypted.

Non esiste un singolo interruttore «attiva HTTPS» che funzioni per ogni distribuzione di CasaOS. La progettazione corretta dipende da chi deve raggiungere il server. Se devono accedere solo i tuoi dispositivi, una rete overlay privata può evitare del tutto di pubblicare il pannello di CasaOS. Se altre persone o client web pubblici devono raggiungere un nome host, usa un reverse proxy o un tunnel che termini TLS e inoltri il traffico al servizio interno.

La risposta originale del 2024 conteneva un errore tecnico importante: suggeriva che ZeroTier potesse tecnicamente visualizzare il traffico HTTP non cifrato all’interno della rete overlay. La documentazione attuale di ZeroTier afferma esplicitamente che il traffico di rete è cifrato end-to-end e che l’infrastruttura di ZeroTier non può leggere il contenuto dei pacchetti. Un browser può comunque visualizzare http:// perché il livello applicativo usa HTTP, ma il trasporto overlay è cifrato.

Esistono tre modelli comuni per l’accesso remoto

  • Overlay privata/VPN: alla rete privata accedono solo dispositivi affidabili.
  • Reverse proxy + dominio: HTTPS pubblico termina su Nginx/Caddy/Traefik e inoltra il traffico internamente a CasaOS o alle app.
  • Tunnel gestito: un connettore crea un tunnel in uscita verso un provider come Cloudflare.

Queste soluzioni possono essere combinate, ma chi è alle prime armi dovrebbe scegliere l’architettura più semplice che soddisfi effettivamente il requisito di accesso.

ZeroTier cifra il traffico end-to-end

La documentazione attuale del protocollo ZeroTier afferma che tutto il traffico ZeroTier è cifrato end-to-end con chiavi controllate dai dispositivi, mentre le FAQ dichiarano che ZeroTier, Inc. non può leggere il traffico di rete.

Consulta l’attuale dichiarazione di ZeroTier sulla privacy del traffico.

Perché il browser può mostrare comunque HTTP

Se CasaOS ascolta su http://192.168.x.x e raggiungi quell’indirizzo attraverso una rete overlay cifrata, il protocollo applicativo tra browser e CasaOS rimane HTTP. La rete overlay cifra i pacchetti IP sottostanti.

È simile all’utilizzo di HTTP all’interno di un tunnel WireGuard privato: il trasporto è cifrato anche se il server web non gestisce TLS.

HTTPS aggiunge comunque un’utile difesa in profondità

L’utilizzo di HTTPS dentro o fuori da una VPN offre:

  • identità del server tramite certificati;
  • comportamento nativo del browser per le origini sicure;
  • trasporto applicativo cifrato anche se il traffico esce dalla rete overlay;
  • maggiore compatibilità con le app che richiedono cookie sicuri o callback HTTPS.

Un reverse proxy è il modello HTTPS standard per i servizi self-hosted

Con un reverse proxy, il nome DNS pubblico o privato punta al proxy. Il proxy ascolta sulla porta 443, gestisce il certificato e inoltra la richiesta a CasaOS o a un’applicazione su una porta HTTP interna.

Nginx Proxy Manager, Caddy e Traefik sono scelte comuni. Il proxy deve essere protetto perché diventa il punto di ingresso per più servizi.

Un certificato pubblico normalmente richiede un dominio o una challenge ACME valida

I certificati in stile Let's Encrypt vengono emessi per i nomi di dominio dopo che il richiedente ha dimostrato di controllarli. In una configurazione domestica, ciò significa solitamente disporre di un dominio e gestire una challenge DNS/HTTP.

Non esporre pubblicamente il pannello di CasaOS solo per ottenere un certificato se devono accedere soltanto i tuoi dispositivi.

Cloudflare Tunnel evita il port forwarding in ingresso

Un connettore Cloudflare Tunnel stabilisce una connessione in uscita verso Cloudflare, quindi il router di casa non deve avere una normale regola di inoltro in ingresso sulla porta 443. Cloudflare può fornire HTTPS sul nome host pubblico.

In questo modo parte del perimetro di fiducia viene trasferita a Cloudflare; per i servizi amministrativi è quindi opportuno usare criteri di autenticazione e accesso.

Mantieni privato il pannello di amministrazione di CasaOS quando possibile

L’architettura più sicura consiste spesso nel pubblicare solo le applicazioni che necessitano di accesso pubblico e nel rendere l’interfaccia di gestione di CasaOS raggiungibile soltanto dalla LAN o da una VPN/rete overlay privata.

TLS protegge il trasporto; non riduce i privilegi di un pannello di amministrazione.

Pi-hole e WireGuard non richiedono lo stesso modello di esposizione

L’utente della richiesta originale prevedeva di aggiungere in seguito Pi-hole e WireGuard. Il servizio DNS di Pi-hole è solitamente destinato a client affidabili della LAN o della VPN, non alla rete Internet pubblica. WireGuard espone deliberatamente un listener VPN UDP, fornendo poi un percorso privato verso gli altri servizi.

Non pubblicare ogni app di CasaOS solo perché una porta VPN deve essere raggiungibile.

Domande frequenti su HTTPS in CasaOS

ZeroTier può leggere il traffico HTTP all’interno della mia rete ZeroTier?

La documentazione attuale di ZeroTier dice di no: il traffico è cifrato end-to-end e la sua infrastruttura non può leggere il contenuto dei pacchetti.

Ho bisogno di HTTPS se mi connetto solo tramite una VPN privata?

La VPN cifra già il trasporto, ma HTTPS può comunque aggiungere l’identità del certificato e una difesa in profondità.

Il pannello di amministrazione di CasaOS dovrebbe essere esposto pubblicamente tramite un reverse proxy?

È preferibile mantenere privata l’interfaccia di gestione, salvo un motivo specifico e adeguatamente protetto per pubblicarla.