시놀로지 Duckdns 도메인 와일드카드 인증서 발급받기 (ft. NPM)

인증서를 NPM에서만 사용하실 생각이라면 TXT 레코드 추가 과정은 생략 하시고

NPM에 duckdns.org 토큰을 입력해서 와일드카드 인증서를 발급 받는 방식을 이용하시면 됩니다

하나의 서브 도메인당 하나의 TXT레코드 값이 필요하기 때문에

*.ㅁㅁㅁ.duckdns.org 에 대한 인증서를 발급 받으시면 됩니다

예전에 duckdns 도메인을 사용 하다가 클플 도메인을 사용한지 꽤 됐습니다

예전에는 duckdns 와일드카드 인증서 말고 일반 인증서로 썼었는데요

duckdns 도메인도 와일드카드 인증서 발급이 가능하다는 글을 보긴 했었지만

이미 클플 도메인을 쓰고있어서 별 생각 없었는데 갑자기 한 번 설정을 해볼까 해서 해봤습니다

 

우선 시놀로지 SSL 인증서 발급용 DuckDns TXT 레코드 설정하기 – 파일의 IT 블로그 이 글과

[Synology] 시놀로지에 Let’s En.. : 네이버블로그 이 글을 참고 했습니다

 

우선 와일드카드 인증서를 발급 받으려면 duckdns도메인에 txt 레코드 라는 걸 등록해야 합니다

 

 

요 페이지 가시면 방법이 있는데

 

https://www.duckdns.org/update?domains=내 도메인&token=토큰 값&txt=저장할txt값&verbose=true

 요 정보를 수정해서 웹 브라우저에 입력 하시면 됩니다만

 

우선 도메인은 aaa.duckdns.org 같은 형식이겠죠

토큰 값은 duckdns 사이트 로그인 하시면  

image.png.jpg

메인 화면에 딱 보입니다

 

txt 값은 이제 알아내야 하는데요…

 

우선 나스의 ssh로 접속을 해야 합니다

image.png.jpg

DSM 제어판 – 터미널에 보시면 SSH 서비스 활성화가 있습니다

기본 22포트인데 다른 포트로 변경해서 쓰시는 걸 추천합니다

그리고 안 쓰실 때는 꺼두는 것도 나쁘지 않습니다

 

여하튼 이런 저런 방법을 통해 ssh로 접속을 해주세요

 

초반에는 루트 권한 필요 없이 일반 계정으로 로그인을 하시면 됩니다

wget https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh

요 명령을 실행 할 건데 일반 사용자로 실행을 해야 /volume1/homes/사용자/ 폴더에 저장이 되거든요

뭐 TXT레코드만 확인 할 거면 폴더 신경 안쓰셔도 되긴 합니다만 혹시 모르니 일반 사용자로 실행 하세요

 

sudo chmod a+x acme.sh

그 후에 권한 설정 해주시고요

 

sudo -i

root 권한으로 접속 합니다

 

/var/services/homes/사용자 이름/acme.sh --issue --dns --force -d 내 도메인 -d *.내 도메인 --yes-I-know-dns-manual-mode-enough-go-ahead-please

그 후에 위의 명령어를 본인 설정에 맞게 수정 해주신 후 실행 해주세요

 image.png.jpg

대충 이런 화면이 보일 텐데요

 

TXT 값이 두 개 나옵니다

이메일 관련 오류가 뜨는 경우

/var/services/homes/사용자 이름/acme.sh --register-account -m 내@이메일.com

위의 명령어를 실행 해주세요 Let’s Encrypt에 등록 할 이메일을 적으시면 됩니다 

하나는 aaa.duckdns.org 의 txt 값

다른 하나는 *.aaa.duckdns.org 의 txt 값

 

우리가 필요한 건 위의 겁니다 위의 값을 복사해서

https://www.duckdns.org/update?domains=내 도메인&token=토큰 값&txt=저장할txt값&verbose=true

이 명령어를 완성 후

웹 브라우저에 입력 해주세요 

 

image.png.jpg

브라우저에 입력한 TXT 값과 OK가 보이면 성공 입니다

 

여기서 부터는 블로그 글을 따라가셔서 시놀로지에서 와일드카드 인증서를 발급 받으셔도 됩니다만

블로그 내용에 있는 자동 갱신이 이제 안된다는 댓글들이 있습니다

시놀로지에서 생성 후 다운 받아서 여기저기 필요하신 곳에 사용해도 상관은 없습니다

이제 npm에서 등록을 해 줄 차례 입니다

 

image.png.jpg

NPM SSL탭에서 Let;s Encrypt 인증서 등록을 눌러 주세요

 

 

image.png.jpg

도메인과 와일드카드 도메인 등록 하시고

버튼 다 누르신 후 duckdns 정보를 입력 합니다

그 후에 save 누르시면

image.png.jpg

 

시간이 좀 지나서 완료가 되야 합니다만

image.png.jpg

아마 이런 에러가 뜰 겁니다

안 뜨시는 분들은 그냥 저장이 될 거고요

 

몇 번 재시도를 해보시고 컨테이너 재시작도 한 번 해보시고

그래도 이런 에러가 뜬다면 아래 방법을 진행 해보세요

 

image.png.jpg

오류 내용을 확인 해줍니다

저는 credentials-12 가 문제네요

아마 각자 다른 번호가 오류로 뜰 겁니다

 

docker ps | grep nginx-proxy-manager

ssh에서 돌아가고 있는 npm을 찾아 줍니다

 

image.png.jpg

이런 식의 컨테이너 경로를 찾을 수 있습니다

다른 이름으로 된 컨테이너를 사용 중이시면 그 부분을 검색 하시면 됩니다

 

docker exec -it daca68c3a41e /bin/sh

위 명령어로 컨테이너 내부에 접속을 해줍니다

 

cd /etc/letsencrypt/credentials/

그 후 /etc/letsencrypt/credentials/ 경로로 이동 해줍니다

 

ls -l

폴더 내용을 확인 해보시면

 

image.png.jpg

이런 식으로 내용이 보입니다

이 단계 에서 한 번 시도를 해보세요 

안 되시면 다음 단계로

credentials-12 가 없네요

touch credentials-12

본인 오류 메시지에 맞게 생성 해주시고

 

chmod 755 credentials-12

권한 설정 해줍니다

 

ls -l

그 후에 다시 확인을 해보면

 

image.png.jpg

credentials-12 가 만들어졌네요

 

이제 컨테이너 재시작을 해줍니다

 

 

컨테이너 재시작 후 다시 npm 가셔서 save 버튼을 눌러 줍니다

 

 

오류가 안뜨면 

 image.png.jpg

시간이 조금 지나서

 

image.png.jpg

 와일드카드 인증서가 등록 됐습니다

 

클플은 여기 등록 되면 자동 갱신도 되는데 

duckdns도 여기서 자동 갱신이 될지는 모르겠네요

아마 되겠죠?;

 

여기까지 하셨으면 끝 입니다

저 오류가 단순히 duckdns 인증서 요청 실패 때문일 수도 있어서 그냥 재시작 하면 될 수도 있습니다

참고 블로그의 내용을 따라 시놀로지에서 발급 받을 때도 한 번에 안되고 여러번 시도해야 더라고요

그런데 npm에서 위의 방법 대로 했을 때는 1~2번 만에 적용이 됐습니다만

저 방법이 효과가 있는 건지 그냥 타이밍이 맞은 건지는 모르겠습니다

 

뭐 어쨌든 등록 됐으면 된 거 겠죠;;

 

참고로 발급 받은 인증서 npm에서 다운 받은 후 시놀로지에 등록 해서 사용해도 됩니다

 

긴 글 읽으시느라 고생하셨습니다

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다