Solução da comunidade

HTTPS no CasaOS para iniciantes: proxy reverso, ZeroTier, túnel da Cloudflare 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.

Não existe um único interruptor de «ativar HTTPS» que funcione em todas as implementações do CasaOS. A conceção adequada depende de quem precisa de aceder ao servidor. Se apenas os seus próprios dispositivos precisarem de acesso, uma rede sobreposta privada pode evitar publicar o painel do CasaOS de todo. Se outras pessoas ou clientes Web públicos precisarem de um nome de anfitrião, utilize um proxy inverso ou um túnel que termine o TLS e reencaminhe o tráfego para o serviço interno.

A resposta original de 2024 continha um erro técnico importante: sugeria que o ZeroTier poderia, tecnicamente, ver o tráfego HTTP simples dentro da rede sobreposta. A documentação atual do ZeroTier afirma explicitamente que o tráfego de rede é encriptado de ponta a ponta e que a infraestrutura do ZeroTier não consegue ler o conteúdo dos pacotes. Um navegador pode continuar a apresentar http://, porque a própria camada de aplicação utiliza HTTP, mas o transporte da rede sobreposta está encriptado.

Existem três padrões comuns de acesso remoto

  • Rede sobreposta/VPN privada: apenas dispositivos de confiança aderem à rede privada.
  • Proxy inverso + domínio: o HTTPS público termina no Nginx/Caddy/Traefik e é encaminhado internamente para o CasaOS/as aplicações.
  • Túnel gerido: um conector cria um túnel de saída para um fornecedor como a Cloudflare.

Estes padrões podem ser combinados, mas os principiantes devem escolher a arquitetura mais simples que satisfaça o requisito real de acesso.

O ZeroTier encripta o tráfego de ponta a ponta

A documentação atual do protocolo ZeroTier afirma que todo o tráfego ZeroTier é encriptado de ponta a ponta com chaves controladas pelos dispositivos, e as respetivas perguntas frequentes indicam que a ZeroTier, Inc. não consegue ler o tráfego de rede.

Consulte a declaração atual do ZeroTier sobre a privacidade do tráfego.

Porque é que o navegador pode continuar a indicar HTTP

Se o CasaOS estiver a escutar em http://192.168.x.x e aceder a esse endereço através de uma rede sobreposta encriptada, o protocolo de aplicação entre o navegador e o CasaOS continua a ser HTTP. A rede sobreposta encripta os pacotes IP subjacentes.

Isto é semelhante à utilização de HTTP dentro de um túnel privado WireGuard: o transporte está encriptado, embora o próprio servidor Web não esteja a fornecer TLS.

O HTTPS continua a acrescentar uma defesa útil em profundidade

A utilização de HTTPS dentro ou fora de uma VPN proporciona:

  • identidade do servidor através de certificados;
  • comportamento nativo do navegador para origens seguras;
  • transporte da aplicação encriptado, mesmo que o tráfego saia da rede sobreposta;
  • melhor compatibilidade com aplicações que exigem cookies seguros ou callbacks HTTPS.

Um proxy inverso é o padrão normal de HTTPS autoalojado

Com um proxy inverso, o nome DNS público ou privado é resolvido para o proxy. O proxy escuta na porta 443, gere o certificado e, em seguida, reencaminha o pedido para o CasaOS ou para uma aplicação numa porta HTTP interna.

O Nginx Proxy Manager, o Caddy e o Traefik são opções comuns. O próprio proxy tem de ser protegido, porque passa a ser a porta de entrada para vários serviços.

Um certificado público normalmente precisa de um domínio ou de um desafio ACME válido

Os certificados do tipo Let's Encrypt são emitidos para nomes de domínio depois de o requerente provar que os controla. Numa configuração doméstica, isso normalmente significa um domínio e o tratamento de desafios DNS/HTTP.

Não exponha publicamente o painel do CasaOS apenas para obter um certificado se apenas os seus próprios dispositivos precisarem de acesso.

O Cloudflare Tunnel evita o reencaminhamento de portas de entrada

Um conector do Cloudflare Tunnel estabelece uma ligação de saída à Cloudflare, pelo que o router doméstico não precisa de uma regra normal de reencaminhamento de entrada para a porta 443. A Cloudflare pode fornecer HTTPS no nome de anfitrião público.

Isto transfere parte da fronteira de confiança para a Cloudflare e deve ser combinado com políticas de autenticação/acesso para serviços administrativos.

Mantenha privada a interface de administração do CasaOS sempre que possível

A arquitetura mais segura consiste frequentemente em publicar apenas as aplicações que precisam de acesso público e manter a interface de gestão do CasaOS acessível apenas através da LAN ou de uma VPN/rede sobreposta privada.

O TLS protege o transporte; não reduz os privilégios de um painel de administração.

O Pi-hole e o WireGuard não exigem o mesmo modelo de exposição

O utilizador da pergunta original planeava adicionar o Pi-hole e o WireGuard mais tarde. O serviço DNS do Pi-hole destina-se normalmente a clientes de confiança da LAN/VPN, não à Internet aberta. O WireGuard expõe deliberadamente um ponto de escuta VPN UDP, mas proporciona depois um caminho privado para outros serviços.

Não publique todas as aplicações do CasaOS apenas porque uma porta VPN tem de estar acessível.

Perguntas frequentes sobre HTTPS no CasaOS

O ZeroTier consegue ler o tráfego HTTP dentro da minha rede ZeroTier?

A documentação atual do ZeroTier diz que não: o tráfego é encriptado de ponta a ponta e a respetiva infraestrutura não consegue ler o conteúdo dos pacotes.

Preciso de HTTPS se apenas me ligar através de uma VPN privada?

A VPN já encripta o transporte, mas o HTTPS pode continuar a acrescentar identidade através de certificados e defesa em profundidade.

O painel de administração do CasaOS deve ser exposto publicamente através de um proxy inverso?

É preferível manter a interface de gestão privada, salvo se existir uma razão específica e devidamente protegida para a publicar.