이번 포스트에서는 synology nas에서 실행되는 서비스를 HTTPS로 서비스하기 위한 설정 방법을 살펴보자.
Synology의 막강한 내장 기능 활용
DDNS
synology는 내부적으로 DDNS 기능을 제공한다. 물론 도메인 이름이 synology에 종속되기는 하지만 개인적으로 사용하기에는 충분하다.
DSM에 로그인 후 제어판 > 외부 액세스 > DDNS로 이동해서 [추가] 버튼을 클릭한다.
서비스 제공업체: synology 선택
host 이름: 원하는 호스트 이름(my-server) 입력
사용자이름, 비밀번호: DSM 로그인 계정 입력
정보 입력 후 [연결 테스트]를 클릭하면 아마 정상이 나올것 같고. 이제 나만의 주소가 생성되었다.
포트 포워딩(공유기 설정)
다음으로 외부에서 HTTPS(443)와 인증서 발급(80)을 위해 공유기로 들어오는 신호를 NAS로 전달해주기 위한 포트 포워딩 설정을 해주자.
공유기 관리 페이지로 접속(http://192.168.0.1 등) 포트 포워딩 메뉴로 이동한다. ASUS 기준으로는 WAN > 가상서버 > 포트포워딩 인데 당연히 공유기 마다 다르다.
포트 포워딩 목록에 2개의 규칙을 추가한다.
규칙 1: 인증서 발급용으로 TCP로 외부 포트 80 요청이 들어오면 내부포트 80으로 Synology NAS IP로 연결한다.
규칙 2: HTTPS 접속용으로 TCP로 외부 포트 443 요청이 들어오면 내부포트 80으로 Synology NAS IP로 연결한다.
Let's Encrypt 인증서 발급
Let's Encrypt는 무료로 SSL 인증서를 발급하는 서비스이다.
DSM에서 제어판 > 보안 > 인증서 > [추가] 버튼을 클릭하고 [새 인증서 추가] 선택 후 [다음]을 클릭한다.
다음 화면에서 [Let's Encrypt 에서 인증서 얻기] 선택 후 [다음]을 클릭한다.
도메인 이름에는 DDNS에서 생성했던 주소를 입력하고 이메일은 관리자 이메일, 주제 대체 이름은 sub domain을 고려하여 *.DDNS_서버_이름을 입력 후 [완료]버튼을 클릭한다.
리버스 프록시 설정(사용하려는 서비스와 도메인 연결)
NAS 내부에서는 docker로 n8n을 서비스 하고 있는데 이 서비스는 http://NAS_IP:5678로 서비스 중이다. 그런데 외부에서는 https://n8n.my-server.synology.me 처럼 접근할 것이다. 따라서 이 둘을 연결해주는 작업이 필요한데 이 일을 해주는 것이 리버스 프록시이다.
DSM 제어판 > 로그인 포털 > 고급 > 리버스 프록시로 이동한다.
생성을 클릭하고 필요한 내용들을 채워준다.
reverse proxy 설정 예시
최종 점검
마지막으로 브라우저에서 https://n8n.quietjun.synology.me로 접속하면 원하는 화면을 확인할 수 있다.