커뮤니티 솔루션

초보자를 위한 CasaOS HTTPS: 리버스 프록시, ZeroTier, Cloudflare Tunnel 및 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.

모든 CasaOS 배포에 적용되는 단 하나의 “HTTPS 켜기” 스위치는 없습니다. 적절한 설계는 누가 서버에 접속해야 하는지에 따라 달라집니다. 자신의 기기만 접속하면 된다면, 프라이빗 오버레이 네트워크를 사용해 CasaOS 대시보드를 아예 공개하지 않을 수 있습니다. 다른 사람이나 공개 웹 클라이언트가 호스트 이름으로 접속해야 한다면, TLS를 종료하고 내부 서비스로 트래픽을 전달하는 리버스 프록시나 터널을 사용하세요.

2024년의 원문 답변에는 중요한 기술적 오류가 하나 있었습니다. ZeroTier가 오버레이 내부의 평문 HTTP 트래픽을 기술적으로 볼 수 있다고 설명한 부분입니다. 현재 ZeroTier 문서에는 네트워크 트래픽이 종단 간 암호화되며 ZeroTier 인프라가 패킷 내용을 읽을 수 없다고 명시되어 있습니다. 애플리케이션 계층 자체가 HTTP이므로 브라우저에 http://가 표시될 수는 있지만, 오버레이 전송 계층은 암호화됩니다.

원격 접속에는 일반적으로 세 가지 패턴이 있습니다

  • 프라이빗 오버레이/VPN: 신뢰할 수 있는 기기만 프라이빗 네트워크에 참여합니다.
  • 리버스 프록시 + 도메인: 공개 HTTPS가 Nginx/Caddy/Traefik에서 종료되고 CasaOS/앱으로 내부 프록시됩니다.
  • 관리형 터널: 커넥터가 Cloudflare와 같은 제공업체로 아웃바운드 터널을 생성합니다.

이러한 방식을 조합할 수도 있지만, 초보자는 실제 접속 요구 사항을 충족하는 가장 간단한 아키텍처를 선택하는 것이 좋습니다.

ZeroTier는 트래픽을 종단 간 암호화합니다

현재 ZeroTier 프로토콜 문서에는 모든 ZeroTier 트래픽이 기기가 제어하는 키로 종단 간 암호화된다고 나와 있으며, FAQ에는 ZeroTier, Inc.가 네트워크 트래픽을 읽을 수 없다고 명시되어 있습니다.

ZeroTier의 현재 트래픽 개인정보 보호 설명을 참조하세요.

브라우저에 HTTP가 계속 표시될 수 있는 이유

CasaOS가 http://192.168.x.x에서 수신 대기하고 있고 암호화된 오버레이를 통해 해당 주소에 접속한다면, 브라우저와 CasaOS 사이의 애플리케이션 프로토콜은 여전히 HTTP입니다. 오버레이는 그 아래 계층에서 IP 패킷을 암호화합니다.

이는 프라이빗 WireGuard 터널 안에서 HTTP를 사용하는 것과 비슷합니다. 웹 서버 자체가 TLS를 제공하지 않더라도 전송 계층은 암호화됩니다.

HTTPS는 여전히 유용한 다층 방어를 제공합니다

VPN 내부 또는 외부에서 HTTPS를 사용하면 다음과 같은 이점이 있습니다.

  • 인증서를 통한 서버 신원 확인
  • 브라우저의 기본 보안 출처 동작
  • 트래픽이 오버레이를 벗어나더라도 애플리케이션 전송 암호화
  • 보안 쿠키나 HTTPS 콜백이 필요한 앱과의 호환성 향상

리버스 프록시는 일반적인 셀프 호스팅 HTTPS 방식입니다

리버스 프록시를 사용하면 공개 또는 프라이빗 DNS 이름이 프록시로 확인됩니다. 프록시는 443 포트에서 수신 대기하고 인증서를 관리한 다음, 요청을 내부 HTTP 포트의 CasaOS 또는 애플리케이션으로 전달합니다.

Nginx Proxy Manager, Caddy, Traefik이 일반적인 선택지입니다. 프록시 자체가 여러 서비스로 들어가는 관문이 되므로 반드시 보호해야 합니다.

공개 인증서에는 일반적으로 도메인 또는 유효한 ACME 챌린지가 필요합니다

Let's Encrypt 방식의 인증서는 요청자가 도메인에 대한 제어 권한을 입증한 후 도메인 이름에 대해 발급됩니다. 가정용 환경에서는 일반적으로 도메인과 DNS/HTTP 챌린지 처리가 필요합니다.

자신의 기기만 접속하면 된다면 인증서를 발급받기 위해 CasaOS 대시보드를 공개 인터넷에 노출하지 마세요.

Cloudflare Tunnel은 인바운드 포트 포워딩을 피할 수 있습니다

Cloudflare Tunnel 커넥터는 Cloudflare로 아웃바운드 연결을 생성하므로, 가정용 라우터에 일반적인 인바운드 443 포트 포워딩 규칙을 설정할 필요가 없습니다. Cloudflare는 공개 호스트 이름에 HTTPS를 제공할 수 있습니다.

이 방식은 신뢰 경계의 일부를 Cloudflare로 옮기므로, 관리 서비스에 대한 인증 및 접근 정책과 함께 사용해야 합니다.

가능하면 CasaOS 관리 UI는 비공개로 유지하세요

가장 안전한 아키텍처는 공개 접속이 필요한 애플리케이션만 공개하고 CasaOS 관리 인터페이스는 LAN 또는 프라이빗 VPN/오버레이를 통해서만 접근할 수 있도록 유지하는 경우가 많습니다.

TLS는 전송을 보호하지만 관리자 대시보드의 권한 수준을 낮춰 주지는 않습니다.

Pi-hole과 WireGuard에는 동일한 노출 모델이 필요하지 않습니다

원문 사용자는 나중에 Pi-hole과 WireGuard를 추가할 계획이었습니다. Pi-hole의 DNS 서비스는 일반적으로 공개 인터넷이 아니라 신뢰할 수 있는 LAN/VPN 클라이언트를 대상으로 합니다. WireGuard는 의도적으로 VPN UDP 리스너를 노출하지만, 그 이후에는 다른 서비스로 연결되는 프라이빗 경로를 제공합니다.

VPN 포트 하나에 도달할 수 있어야 한다는 이유만으로 모든 CasaOS 앱을 공개하지 마세요.

CasaOS HTTPS FAQ

ZeroTier가 내 ZeroTier 네트워크 내부의 HTTP 트래픽을 읽을 수 있나요?

현재 ZeroTier 문서에 따르면 읽을 수 없습니다. 트래픽은 종단 간 암호화되며 ZeroTier 인프라는 패킷 내용을 읽을 수 없습니다.

프라이빗 VPN을 통해서만 접속한다면 HTTPS가 필요한가요?

VPN이 이미 전송을 암호화하지만, HTTPS는 인증서 기반 신원 확인과 다층 방어를 추가로 제공할 수 있습니다.

CasaOS 관리자 대시보드를 리버스 프록시를 통해 공개해야 하나요?

관리 UI를 공개해야 할 구체적이고 충분히 보호된 이유가 없다면 비공개로 유지하는 것이 좋습니다.