::: IT인터넷 :::

시놀로지 NAS Let's Encrypt 인증서 발급 받기

곰탱이푸우 2021. 6. 8. 11:45

개요

Let's Encrypt 사용 계기

원래는 Nexus, GitLab, 인증서 순으로 작성하려고 했는데, 정리 순서가 반대로 되어 있어 인증서부터 작성한다.

  • 시놀로지 NAS를 이용한 인증서 발급
  • 자동 갱신 방법

 

3월부터 NAS를 이용한 개발 환경 구축이라는 뽐뿌가 갑자기 왔다.

기존에는 213 모델을 사용했는데 Docker를 지원하지 않아서 결국 220+ 모델을 질렀다. (결국 집에 NAS 두 대가 열일 중..)

 

최초 구입 목적은 아래 서비스를 구축하는 것이었고, Jira와 Confluence는 결국 빠졌다.

  • 형상 관리를 위한 GitLab
  • 빌드, CI/CD를 위한 Jenkins
  • 배포와 사설 리파지토리를 위한 Sonatype Nexus3
  • 이슈 관리와 문서 관리를 위한 Jira와 Confluence

 

이슈 관리와 문서 관리를 위한 Jira와 Confluence


Jira와 Confluence는 Atlassian에서 자체 운영 가능한 Server 제품을 단종 시키고, 클라우드로 전환하고 있어서 NAS에 구축하지 않고 별도로 사용 중이다.
  • Jira - Jira Cloud 무료 버전 사용 중
  • Confluence - Confluence Cloud는 사용하지 않고, Evernote (8년째 유료고객) + 블로그 중심 사용

 

특히 GitLab 구축할 때 SSL 설정하면서 인증서가 필요했고, 시놀로지를 통해 Let's Encrypt 인증서로 편하게 발급 받았다.

일단 인증서는 도메인에 대한 인증서를 의미하고, 시놀로지 NAS에서 자체적으로 제공해주는 인증서를 사용해도 된다.

 

 

그러나 시놀로지 자체 발급 인증서는 자체 서명이라 인증되지 않은 문제로, DSM에 HTTPS 접속할때 '안전하지 않음' 메시지를 계속 봐야 한다.

Let's Encrypt 인증서는 검증 된 서명을 포함한 인증서이기 때문에 (특히 무료!!), 발급 받고 나면 더 이상 보지 않아도 된다.

그리고 Docker로 운영 중인 Jenkins, Nexus3도 NAS의 리버스 프록시 기능을 사용하여 별도 추가 설정 없이 SSL을 적용할 수 있었다.

 

특징

기본적인 Let's Encrypt 인증서 소개는 아래 페이지를 참고한다.

https://namu.wiki/w/Let's%20Encrypt

 

단, Let's Encrypt 인증서는 무료로 제공되기 때문에 유효 기간이 매우 짧다. (90일, 만료 30일 전부터 갱신 가능)

따라서 3개월마다 갱신해야 하는데, 시놀로지 NAS는 DSM이 자동 갱신을 해주기 때문에 큰 문제 없다.

최초 발급할 때 손이 좀 많이 가긴 한다.

 

그리고 블로그를 운영하거나 공용 NAS인 경우에는 가급적이면 사용하고자 하는 도메인 하나는 구입하는 것을 권장한다.

DDNS를 통해 제공 받는 무료 도메인 중 사용자가 많이 몰리는 주소는 Let's Encrypt 인증서 발급 받기 어려울 수 있다. (iptime.org, synology.me 등)

 

시놀로지 NAS에서 제공하는 무료 DDNS 도메인 중 인기 없는 것을 고르면, 웬만해서는 문제 없이 가능 하기 때문에 선택 사항이다.

나는 다행히 블로그 운영을 위해 구입했던 현재 도메인이 있었기 때문에, 메인 도메인은 블로그, 서브 도메인은 NAS에 연결하는 방식을 사용했다.

 

 

시놀로지 NAS를 이용한 인증서 발급

시놀로지 DSM에서 무료 도메인을 생성하는 방법은 다음을 참고한다. 

더보기

시놀로지 NAS의 무료 도메인 생성 방법

시놀로지 DSM에서 제어판 - 외부 액세스 - DDNS로 이동하면 다음과 같은 화면을 확인할 수 있다.

 

다양한 무료 DDNS 제공 업체들을 확인할 수 있고, Synology를 선택하면 사용 가능한 도메인 목록을 확인할 수 있다.

 

사실 synology.me는 기억하기는 좋지만 사용자가 많아서 Let's Encrypt 무료 인증서 발급이 어렵다. 

  • 유료 인증서는 개인이 쓰기엔 가격이 깡패다.
  • Let's Encrypt는 특정 상위 도메인 (ex. synology.me)이 10분간 5회 이상 재발급을 받으면 1주간 발급이 불가능하다.
  • (출처 : https://namu.wiki/w/Let's%20Encrypt 3. 주의 사항)
  • iptime.org와 synology.me는 사용자가 너무 많아서 항상 중단 상태이다.

 

나머지 주소는 무료 인증서 발급은 가능하지만 한번에 기억하기 쉬운 편이 아니다.

  • 사실 도메인은 대소문자를 동일하게 취급하므로 myDS.me 정도는 괜찮은 것 같다.
  • 사용자가 아주 적은 무료 DDNS 주소는 인증서 발급이 된다!

 

유료 도메인 생성은 도메인 구입, DNS 등록, 공유기 설정 (포트포워딩)이 필요한데 이 정도는 구글링을 권장한다. (추후 기회되면 포스팅을 하겠다.)

따라서 인증서 발급을 위한 유료 또는 무료 도메인은 이미 생성되어 있다고 가정한다.

 

시놀로지 NAS에서 Let's Encrypt 인증서 발급

일단 첫번째 단계인 시놀로지 NAS에서 Let's Encrypt 인증서를 발급 받는 방법은 다음과 같다.

 

시놀로지 DSM에서 제어판 - 보안 - 인증서 탭로 이동한다.

기본 설정 된 인증서가 존재하는데 시놀로지가 자체적으로 발급한 사설 인증서이다. (발급자 항목에 '자체 서명 인증서'라고 되어 있다.)

 

추가 버튼을 누르고 '새 인증서 추가'에 체크하고 다음을 클릭한다.

 

 

세번째 항목인 'Let's Encrypt에서 인증서 얻기' 에 체크하고 다음을 클릭한다.

 

도메인 이름에는 구입한 유료 도메인 또는 위에서 설명한 무료 DDNS 도메인을 사용한다.

  • 도메인 이름 - 사용하려는 도메인을 입력한다.
  • 이메일 - 사용 중인 이메일 주소를 입력한다.
  • 주제 대체 이름 - Alias. 추가로 적용할 도메인을 입력한다.

 

예를 들면 다음과 같다.

 

 

적용을 클릭하면 다음과 같이 발급이 진행된다.

 


주의사항!!


Let's Encrypt 인증서를 생성할 때 외부에서 NAS에 80 포트로 접근한다.
도메인 소유 여부 검증과 발급을 위한 목적으로 해당 포트가 개방되어 있어야 한다.
최초 발급할 때만 필요하고, 갱신할 때에는 80포트를 닫은 상태에서도 가능하다.

따라서 다음과 같이 진행한다.

1. 시놀로지 NAS의 DSM HTTP 포트를 설정하고 HTTPS 자동 리다이렉션 기능을 해제한다.
  (포트는 기본 설정을 사용해도 무방하다. 단, 인증서 발급 이후 보안을 위해 다른 포트로 변경을 권장한다.)



2. 보유한 도메인과 인터넷 공유기 (또는 NAS)의 연결 여부를 확인한다.

3. 인터넷 공유기의 80포트 (외부) 포트포워드 정책을 NAS IP와 DSM의 HTTP 포트에 임시로 연결한다.

4. 인증서 발급을 진행한다.

5. 발급이 완료되면 공유기에서 임시로 설정한 포트포워딩 정책을 삭제한다. 기존 NAS 관련 포워딩 정책을 복원한다.

6. 시놀로지 NAS의 제어판 - 네트워크 - DSM 설정에서 사용하던 설정으로 원복한다.


발급 과정 중 오류가 발생했다면 예상되는 원인은 다음과 같다.
  • 해당 도메인의 실제 소유 여부가 확인되지 않는 경우 (오타 또는 도메인의 DNS 설정 오류)
  • 외부에서 NAS로 80포트 접속이 되지 않는 경우 (공유기에서 NAS로 포트포워딩 누락)
  • 선택한 도메인에 대한 인증서 발급이 차단 된 경우
 

 

정상적으로 인증서가 발급 되면 시놀로지 DSM에서 제어판 - 보안 - 인증서 탭에 추가된다.

 

 

운영 중인 서비스에 연결을 원하는 경우는 인증서 상단의 '구성' 버튼을 클릭한다.

 

연결을 원하는 서비스명이나 포트를 선택하고, 우측의 콤보 박스를 이용하여 인증서를 변경하고 저장한다.

 

인증서의 자동 갱신 설정 방법

DSM에서 주기적으로 자동 갱신하므로 신경 쓰지 않아도 된다.

 

인증서 파일 다운로드

시놀로지 NAS에서 제공하는 프로그램이나 Docker를 이용하여 서비스를 구성하는 경우 SSL 접속 설정을 위해 인증서가 필요한 경우가 있다.

 

 

이러한 경우 제어판 - 보안 - 인증서 - 인증서 선택 - 추가 옆 아래 화살표 선택 - 인증서 내보내기를 선택하면 다운로드 할 수 있다.

 

archive.zip이 다운로드 되고, cert.pem, chain.pem, privkey.pem 총 3개 파일이 포함되어 있다.

결론

Let's Encrypt 인증서는 갱신 주기가 짧다는 것이 단점이지만, 시놀로지에서 자동 갱신을 해주기 때문에 상당히 좋은 서비스로 생각된다.

(어차피 갱신 주기가 짧은 이유가 갱신 자동화를 장려하기 위함이다.)

 

무료로 제공 되는 인증서이고 시놀로지 NAS도 기능 지원을 해주는 만큼 적용해보기를 추천한다.