본문 바로가기

서버와 홈디바이스/NAS, VPN, 클라우드

시놀로지 duckdns dns 인증서 설정 - acme

반응형

 

서브로 사용하는 시놀로지(헤놀)에 duckdns의 dns challenge 로 인증서를 설정해봤다.

 

최근 acme 기본 서버가 zerossl 인데 뭔가 설정이 잘 안되서 삽질을 한참 했다.

 

 

테스트 환경은

synology 920+ 에 duckdns 얹어서 letsencrypt 로 인증서 받기

 

 

참조 문서 목록

https://www.clien.net/service/board/cm_nas/17436459

 

ACME를 이용한 와일드카드 인증서 시놀로지 발급 관련 자료 모음 : 클리앙

이번에 나스를 옮기면서 삽질을 여러번 했습니다. 1. 기존 나스에 설정해두었던 ACME설치방법을 완전히 까먹었었다는 것이 사건의 발단이었고 2. ACME 방식이 약간 변경이 있었다는 것 3. DSM7에서는

www.clien.net

 

https://github.com/acmesh-official/acme.sh/tree/master/dnsapi

 

GitHub - acmesh-official/acme.sh: A pure Unix shell script implementing ACME client protocol

A pure Unix shell script implementing ACME client protocol - GitHub - acmesh-official/acme.sh: A pure Unix shell script implementing ACME client protocol

github.com

 

https://github.com/acmesh-official/acme.sh/wiki/Synology-NAS-Guide

 

Synology NAS Guide

A pure Unix shell script implementing ACME client protocol - acmesh-official/acme.sh

github.com

 

https://siane.tistory.com/267

 

[Synology] 시놀로지에서 클라우드플레어 DDNS 설정하고 와일드카드 인증서 받기 #2

2021.10.01 - [Synology] 시놀로지에서 클라우드플레어 DDNS 설정하고 와일드카드 인증서 받기 #1 이 게시글의 연장입니다. 사용 환경은 DS1821+, DSM 7.0.1 입니다. 6.2 호환성에 대해서는 확인되지 않았습니

siane.tistory.com

 

 

  1. DSM 인증서 발급을 위한 사용자를 추가하고 시작하자. administrator 그룹에 포함 필요.
    (아니면 관리자 권한 있는 기존 사용자 사용해도 된다)
  2. DSM 에서 ssh 포트를 사용 가능하도록 하고 putty나 기타 등등 이용하여 ssh 접속해준다.
  3. 이제 ssh 에서 아래 명령어를 순서대로 입력한다. 중간에 sudo 명령어로 인해 암호를 다시 물어봄.
wget -O /tmp/acme.sh.zip https://github.com/acmesh-official/acme.sh/archive/master.zip


#acme 설치
sudo 7z x -o/usr/local/share /tmp/acme.sh.zip
sudo mv /usr/local/share/acme.sh-master/ /usr/local/share/acme.sh
sudo chown -R certadmin /usr/local/share/acme.sh/
cd /usr/local/share/acme.sh


#acme 업데이트
./acme.sh --force --upgrade --nocron --home /usr/local/share/acme.sh

# 이메일 계정 추가
./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "email@gmailcom"

#acme 기본 서버 letsencrypt 로 변경 
./acme.sh --set-default-ca --server letsencrypt

# 개인 도메인, 토큰 입력
export CERT_DNS='dns_duckdns'
export DuckDNS_Token='xxx-xxx'
export $CERT_Domain='your_domain'

#인증서 받아오기
./acme.sh --server letsencrypt --issue --home . -d '$CERT_Domain' --dns '$CERT_DNS'

#시놀로지 user id 와 암호를 입력해준다.
#만약 DSM 포트를 바꾸었으면 바꾼 포트도 넣어준다.
# certificate 항목 내용과 동일한 인증서를 갱신해준다.
export SYNO_Username='username'
export SYNO_Password='password'
export SYNO_Certificate='설명'
export SYNO_Port='DSM_http_port'
export SYNO_Create=1

# DSM 에 기본 인증서로 등록해준다. 
./acme.sh --deploy --home . -d ksdrive.duckdns.org --deploy-hook synology_dsm

 

 

인증서 갱신은 아래와 같은 명령어를 쓰면 된다.

제어판 -> 작업 스케쥴러 에서 생성해서 추가하면된다. 대충 매주 한번씩 체크하도록 하면 될듯 하다.

/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/
반응형