커뮤니티 솔루션

ZimaOS 및 셀프 호스팅 앱의 HTTPS 경고 해결

A ZimaOS user wanted to remove browser security warnings from the dashboard and every hosted app. The thread clarified the local ZimaOS certificate, Windows trust-store import, and why separate apps need their own HTTPS or a reverse proxy.

브라우저에서 ZimaOS 대시보드나 앱이 “안전하지 않음”으로 표시되면 먼저 기본 ZimaOS 대시보드와 자체 포트에서 실행되는 애플리케이션을 구분하세요. 원본 스레드에서는 결국 이 두 가지가 서로 다른 HTTPS 문제라는 점이 확인되었습니다.

ZimaOS는 https://zimaos.local용 로컬 인증서를 생성할 수 있습니다. 이 인증서를 신뢰하도록 설정하면 ZimaOS 대시보드에서 브라우저 경고를 제거할 수 있습니다. 하지만 Plex, Jellyfin, Emby, AdGuard 또는 기타 Docker 앱에 HTTPS가 자동으로 적용되는 것은 아닙니다. 이러한 앱은 별도의 HTTP 서비스이기 때문입니다. 여러 앱을 신뢰할 수 있는 HTTPS 이름 뒤에 배치하려면 적절한 인증서와 함께 Nginx Proxy Manager 또는 Caddy 같은 리버스 프록시를 사용하세요.

원래 브라우저 경고

HTTPS로 로컬 ZimaOS 대시보드를 열 때 표시되는 브라우저 인증서 경고
원문 작성자는 ZimaOS를 열 때마다 브라우저의 인증서 경고를 클릭해 넘어가는 일을 중단하고 싶어 했습니다.

옵션 1: 로컬 ZimaOS 대시보드의 HTTPS 비활성화

Zima-Giorgio는 ZimaOS 설정 패널에서 HTTPS를 끌 수 있다고 답변했습니다. 신뢰할 수 있는 사설 LAN에서는 일반 HTTP를 사용하면 인증서 경고로 인한 불편을 줄일 수 있지만, 브라우저와 대시보드 간 전송 암호화도 제거됩니다.

로컬 HTTPS 인증서와 보안 제어 기능이 표시된 ZimaOS 설정 화면
2025년 원본 답변에서는 ZimaOS에서 로컬 HTTPS 동작을 관리할 수 있는 위치를 보여 주었습니다.

여러 네트워크를 오가는 노트북이나 기기에서는 브라우저 보안을 전역적으로 약화하는 것보다 ZimaOS 인증서를 신뢰하도록 설정하는 편이 일반적으로 더 좋습니다.

옵션 2: ZimaOS 로컬 인증서 다운로드 및 신뢰

공식 답변에서는 생성된 CRT 파일을 다운로드하여 클라이언트에서 신뢰하도록 설정할 것을 권장했습니다. 신뢰 설정이 완료되면 다음을 사용하세요.

https://zimaos.local
생성된 로컬 HTTPS CRT 인증서를 다운로드하는 ZimaOS 인터페이스
생성된 CRT는 로컬 ZimaOS 대시보드 호스트 이름에 대한 신뢰를 설정하기 위한 것입니다.

Windows에서 ZimaOS CRT 신뢰하기

원본 답변에서 안내한 Windows 절차는 다음과 같습니다.

  1. 누르기 Win + R.
  2. 실행 certmgr.msc.
  3. 신뢰할 수 있는 루트 인증 기관 → 인증서를 여세요.
  4. 모든 작업 → 가져오기를 선택하세요.
  5. 자신의 ZimaOS 시스템에서 다운로드한 CRT를 선택하세요.
  6. 신뢰할 수 있는 루트 인증 기관에 추가하세요.
  7. 브라우저를 다시 시작하세요.

자신이 알고 있는 ZimaOS 인스턴스에서 직접 받은 인증서만 신뢰하세요. 루트 인증서를 설치한다는 것은 해당 클라이언트에서 연결을 검증하도록 그 인증서를 신뢰한다는 의미입니다.

ZimaOS 인증서로 Jellyfin, Plex 또는 Emby가 보호되지 않는 이유

이후 원 작성자는 Pop!_OS에서 인증서를 성공적으로 가져왔다고 확인했으며, zimaos.local 작동했지만 Plex, Emby, Jellyfin은 여전히 안전하지 않은 것으로 표시되었습니다.

2026년의 한 답변에서는 그 이유를 설명했습니다. 이러한 앱은 서로 다른 서비스와 포트에서 수신 대기합니다. 예를 들면 다음과 같습니다.

Jellyfin: http://ZIMAOS_IP:8096
Plex:     http://ZIMAOS_IP:32400

이들은 ZimaOS 대시보드 인증서를 자동으로 상속하지 않습니다. 이는 예상된 동작이며 CRT 가져오기가 실패했다는 증거가 아닙니다.

여러 앱에서 HTTPS에 리버스 프록시 사용

애플리케이션에 다음과 같은 이름을 부여하려면:

https://jellyfin.example.com
https://emby.example.com
https://adguard.example.com

이들 앞에 리버스 프록시를 배치하세요. 프록시는 TLS 인증서를 처리한 다음 각 요청을 애플리케이션의 내부 HTTP 포트로 전달합니다.

Nginx Proxy Manager는 현재 ZimaOS 앱 스토어에서 이용할 수 있습니다.

ZimaOS용 Nginx Proxy Manager

Nginx Proxy Manager에서 포트 80 또는 443이 이미 사용 중이라고 표시되는 이유

소스 작성자는 프록시를 설치하자마자 포트 충돌을 겪었습니다. 현재 Nginx Proxy Manager 문서에서는 다음 표준 포트를 요구합니다.

80  → 공개 HTTP
443 → 공개 HTTPS
81  → NPM 관리 UI

ZimaOS가 이미 호스트 포트 80 또는 443을 사용 중이면 NPM은 동일한 호스트 포트를 동시에 바인딩할 수 없습니다.

공식 Nginx Proxy Manager 설정

81번 포트는 공개 HTTPS 목적지가 아닙니다

같은 스레드의 한 사용자가 라우터 포트 80과 443을 내부 포트 81로 전달했습니다. 커뮤니티에서는 이를 바로잡았습니다.

라우터 80  → NPM 포트 80
라우터 443 → NPM 포트 443

포트 81 NPM 관리자 인터페이스입니다. 일반적인 공개 웹사이트 트래픽을 이곳으로 보내서는 안 됩니다.

HTTP 챌린지와 DNS 챌린지

이 스레드에서는 Let's Encrypt의 두 가지 검증 방식도 구분했습니다.

  • HTTP 챌린지: 일반적으로 인증 기관이 80번 포트를 통해 프록시에 접근할 수 있어야 합니다.
  • DNS 챌린지: DNS 제공업체의 레코드/API를 통해 도메인 제어 권한을 확인하므로 인바운드 80번 포트 검증을 피할 수 있습니다.

한 가지 방법을 신중하게 선택하세요. NPM이 어떤 검증 경로를 사용하는지 이해하지 않은 채 두 방식의 설정을 조합하지 마세요.

Nginx Proxy Manager를 실행하는 데 MySQL이 꼭 필요한가요?

아닙니다. 현재 Nginx Proxy Manager 설정은 간단한 단일 컨테이너 설치에서 SQLite를 지원합니다. 외부 MySQL/MariaDB/PostgreSQL 데이터베이스는 선택 사항입니다.

이는 소스 스레드에서 제기된 또 다른 우려도 바로잡습니다. 초보자는 몇 가지 홈 서비스를 리버스 프록시로 연결하기 위해 MySQL을 배포할 필요가 없습니다.

ZimaOS 웹 포트 변경의 상충 관계

스레드 후반에 한 사용자가 ZimaOS를 포트 80에서 옮긴 후 Nginx Proxy Manager를 설치할 수 있었습니다. 그러나 2026년의 별도 커뮤니티 보고에 따르면 ZimaOS 대시보드 포트를 변경하면 Zima 데스크톱/모바일 클라이언트 동작에 문제가 생길 수 있습니다.

따라서 “ZimaOS를 포트 80에서 옮기기”는 위험이 전혀 없는 보편적인 해결책이 아닙니다. 변경하기 전에 자신의 환경에서 무엇이 더 중요한지 결정하세요.

  • 리버스 프록시가 표준 80/443 포트를 사용하는 것.
  • 또는 기본 ZimaOS 클라이언트/검색 동작을 유지하는 것.

로컬 전용 HTTPS와 공개 HTTPS

애플리케이션을 집 안에서만 사용하는 경우:

  • 신뢰할 수 있는 LAN에서는 직접 HTTP를 사용할 수 있습니다.
  • 로컬에서 신뢰할 수 있는 인증서를 사용하세요.
  • 또는 내부 리버스 프록시와 내부 DNS를 실행하세요.

인터넷에 공개되는 HTTPS가 필요하다면 도메인, 강력한 인증, 올바르게 발급된 인증서, 신중하게 설계한 원격 액세스 및 보안 방식을 사용하세요. 브라우저의 자물쇠 아이콘을 표시하기 위해 애플리케이션 관리 포트나 NPM 관리 UI를 노출하지 마세요.

ZimaOS HTTPS 체크리스트

  1. 경고가 무엇과 관련된 것인지 결정하세요. zimaos.local 또는 별도의 애플리케이션.
  2. ZimaOS 대시보드의 경우, 경고 없이 로컬 HTTPS를 사용하려면 생성된 CRT를 다운로드하여 신뢰하세요.
  3. 사용 https://zimaos.local 인증서가 신뢰된 후.
  4. ZimaOS CRT가 별도의 앱 포트를 보호할 것이라고 기대하지 마세요.
  5. 여러 앱의 HTTPS 호스트 이름에 리버스 프록시를 사용하세요.
  6. NPM을 설치하기 전에 포트 80과 443을 어떤 서비스가 사용하고 있는지 확인하세요.
  7. NPM 포트 81은 공개 웹사이트 포워딩이 아니라 관리용으로 유지하세요.
  8. 네트워크에 맞게 HTTP 또는 DNS 인증서 검증을 선택하세요.
  9. 불필요한 관리 서비스를 공용 인터넷에 노출하지 마세요.

ZimaOS HTTPS FAQ

zimaos.local은 안전한데 Jellyfin은 여전히 HTTP인 이유는 무엇인가요?

ZimaOS 인증서는 대시보드 호스트 이름에 적용됩니다. Jellyfin은 자체 포트에서 수신 대기하는 별도의 서비스입니다.

하나의 리버스 프록시로 모든 ZimaOS 앱을 보호할 수 있나요?

각 프록시 호스트가 올바르게 구성되어 있고 프록시가 대상 앱에 연결할 수 있다면, 여러 HTTP 서비스의 HTTPS를 종료할 수 있습니다.

Nginx Proxy Manager가 포트 443에서 시작되지 않는 이유는 무엇인가요?

다른 서비스가 이미 해당 호스트 포트에 바인딩되어 있습니다. 원본 스레드에서는 ZimaOS와 NPM이 표준 웹 포트를 두고 충돌했습니다.

공개 HTTPS 트래픽을 포트 81로 포워딩하나요?

아니요. 포트 81은 NPM 관리 UI입니다. 일반적인 공개 트래픽은 포트 80과 443으로 들어와야 합니다.