개인적으로는 최근에 올린 클라우드플레어를 이용한 와일드카드 인증서 사용이 훨씬 편한 것 같습니다.
클플에서도 DDNS 사용이 가능한 만큼, 아래 게시글도 확인해보시고, 더 편리한 방법으로 사용해보세요.
2021.10.01 - [Synology] 시놀로지에서 클라우드플레어 DDNS 설정하고 와일드카드 인증서 받기 #2
NoriDev 님 블로그 게시글 참고. 나중에 초기화할때 쉽게 참고하려고 적어둡니다.
blog.naver.com/jcjee2004/221831609605
추가 참고 문서 : acme.sh github
https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-CA
2021.7.13 현재 다른 NAS 세팅을 하며 와일드카드 인증서 발급을 위해 아래 코드를 그대로 사용하였으나, 오류가 발생함을 확인했습니다.
버전이 올라가면서 zerossl을 기본값으로 사용하게 되면서 생긴 이슈로 보이며, 이메일 계정 등록을 한 후 발행을 하면 되는 것 같습니다.
2021.8.2 실행이 안된다는 분이 있어 다시 확인 후 내용 추가합니다.
※ 사용자 홈 서비스가 활성화 되어있어야만 합니다.
(제어판 -> 사용자 및 그룹 -> 고급 -> 사용자 홈 서비스 활성화 체크)
※ zerossl 이 기본값이 되며 인증서 발행에 오류가 있는 것 같습니다. 제 지식에선 해결이 불가능해서 이전 방식인 letsencrypt로 사용을 했습니다.
SSH -> acme.sh 스크립트 설치
$ wget https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh
실행권한 부여
$ sudo chmod a+x acme.sh
[21.7.13 추가]
계정 등록
/var/services/homes/사용자 이름/acme.sh --register-account -m [이메일 주소] --server zerossl
zeroSSL에 계정을 등록하는 과정으로 보입니다 '-'.
ACCOUNT_THUMBPRINT 가 나오는데, 쓸일이 있을지는 모르겠습니다만, 혹시모르니 보관하시는게 좋을 것 같아요.
기본 CA를 letsencrypt로 변경
$ /var/services/homes/사용자 이름/acme.sh --set-default-ca --server letsencrypt
※ 제가 할 때는 변경을 했음에도 불구하고 이후에 계속 정상적으로 발급이 되지 않았습니다. 그래서 아래 발급, 갱신 명령에 모두 --server letsencrypt가 들어갑니다.
인증서 발급
$ /var/services/homes/사용자 이름/acme.sh --issue --dns --force -d 내 도메인 -d *.내 도메인 --yes-I-know-dns-manual-mode-enough-go-ahead-please --server letsencrypt
※ 마지막에 --server letsencrypt 내용이 추가되었습니다. 2021년 8월 1일자로 업데이트되며 zerossl을 기본 CA로 사용하며 인증 오류가 생기는 듯 합니다.
위 실행된 내용 중
Domain: '_acme-challenge.내 도메인'
TXT value: "키 값"
확인하여 TXT레코드 추가
TXT 레코드에 _acme-challenge : [TXT value] 추가, 여러개인경우 여러개 추가
nslookup으로 TXT레코드 등록이 되어있는지 확인
nslookup
> set type=txt
> _acme-challenge.내 도메인
SSH가 아니라 작업중인 PC에서도 확인 가능
DNS 서버에 적용이 된 것을 확인 후 인증서 갱신 명령어를 통해 인증서 발급을 한다.
DNS 서버 적용이 되지 않은상태에서 명령어 실행 시 TXT value가 변경됨
아래 페이지에서도 확인이 가능합니다.
확인 시 '이름' 부분에 '_acme-challenge.내 도메인' 으로 넣어야 조회가 됩니다.
https://toolbox.googleapps.com/apps/dig/?lang=ko#TXT/
※ txt레코드 등록은 시간이 꽤 걸릴수도 있습니다. 네임서버에서 업데이트한 이후에 전세계의 dns에서 갱신이 되어야 하기 때문이죠.
TXT레코드 등록확인 후 최종 갱신(발급)
$ /var/services/homes/사용자 이름/acme.sh --renew --dns --force -d 내 도메인 -d *.내 도메인 --yes-I-know-dns-manual-mode-enough-go-ahead-please --server letsencrypt
※위의 발급과 동일하게 --server letsencrypt 문구가 추가되었습니다.
인증서 갱신 시 /root/.acme.sh/내 도메인 에 저장이 되고 갱신됨을 반복한다고 하는데.. 스크립트로 갱신 시 해당 위치를 찾을 수 없다는 오류가 떴다. 해결방법은 아래에..
발급한 인증서를 DSM에 추가
home폴더 -> '.acme.sh'폴더 내 '내 도메인' 폴더 우클릭 -> 다운로드
내 도메인.key / 내 도메인.cer / ca.cer 파일 확인
제어판 -> 보안 -> 인증서 -> 추가
새 인증서 -> 인증서 가져오기
개인키 : 내 도메인.key
인증서 : 내 도메인.cer
중간 인증서 : ca.cer
확인 클릭
기존 인증서가 있었다면 구성을 눌러서 추가한 인증서로 변경
추가한 인증서 경로 확인
$ sudo -i
# cat /usr/syno/etc/certificate/_archive/DEFAULT
ABC
제어판에 추가한 인증서는 '/usr/syno/etc/cetificate/_archive' 에 랜덤한 이름으로 저장되고 이 인증서 중 기본 인증서가 '/usr/syno/etc/certificate/system/default' 에 복사됨
이 경로는 인증서 제거하기 전까지만 유효
작업 스케줄러 등록(자동갱신)
제어판 -> 작업 스케줄러 -> 생성 -> 예약된 작업 -> 사용자 정의 스크립트
작업 : 편한 이름 / 사용자 : root
날짜 : 작업 주기 설정. 매주 혹은 매월 정도로 설정하면 될듯
작업 설정 탭 -> 실행 명령에 아래 내용 추가
# 인증서 갱신
/var/services/homes/사용자 이름/acme.sh --renew --dns --force -d 내 도메인 -d *.내 도메인 --yes-I-know-dns-manual-mode-enough-go-ahead-please --server letsencrypt
# 갱신된 인증서를 시놀로지에 등록
/bin/cp /root/.acme.sh/내 도메인/내 도메인.cer /usr/syno/etc/certificate/_archive/폴더 이름/cert.pem
/bin/cp /root/.acme.sh/내 도메인/ca.cer /usr/syno/etc/certificate/_archive/폴더 이름/chain.pem
/bin/cp /root/.acme.sh/내 도메인/fullchain.cer /usr/syno/etc/certificate/_archive/폴더 이름/fullchain.pem
/bin/cp /root/.acme.sh/내 도메인/내 도메인.key /usr/syno/etc/certificate/_archive/폴더 이름/privkey.pem
# nginx 서비스 재시작
/usr/syno/sbin/synoservicectl --reload nginx
※ 갱신 명령에 --server letsencrypt 가 추가되었습니다.
#은 주석
폴더 이름은 추가한 인증서 경로 확인에서 나온 폴더명 입력
갱신이 제대로 되었는지 확인을 위해 알림 -> 실행 상세 정보 이메일로 보내기 설정해도 됨
추가
여기까지 하면 완료...인데, 갱신 시 No such file or directory 에러가 뜰 수 있다.
1. 'not a issued domain, skip' 메시지가 뜨는 경우 갱신 기간(잔여기간 30일 이내)가 되지 않아 스킵을 하며, root의 .acme.sh 폴더 내에 파일이 없으므로 파일을 찾을 수 없다는 문구가 뜨게 된다.
2. 갱신 기간임에도 No such file or directory 문구가 뜨는 경우
/root/.acme.sh 를 /var/services/homes/계정명/.acme.sh 로 대체한다.
[2021. 08. 02] 클리앙의 어떤 분께서 이 내용으로 진행이 되지 않는다고 하여 VMM으로 직접 갱신을 해 보며 수정했습니다. 인증서 발급 및 적용이 문제없음을 확인했으나, 갱신이 된다고 장담하긴 어렵습니다.;; 제가 전문가가 아니다보니..;;
제대로 발행이 되었는지 확인을 하기 위해 사용자이름/.acme.sh/내 도메인 폴더 내에 파일이 정상적으로 있는지 확인을 해야 합니다. ca 파일이 없다면 사용할 수 없습니다.
클라우드플레어를 이용한 와일드카드 인증서 발행 방법이 훨씬 간단합니다. 저는 DNSzi의 DDNS 기능 때문에..;; 근 1년간 IP가 단 한번도 변경되진 않았지만요..
아무쪼록 다른 분들께 도움이 되길 바랍니다.
'취미, 관심 > NAS, Server' 카테고리의 다른 글
[Synology] 시놀로지 NAS에서 도메인으로만 접속하기(포트번호 숨기기, 역방향 프록시) (3) | 2021.05.27 |
---|---|
초보자를 위한 NAS 선택 방법 (2) | 2021.05.26 |
[Synology] 시놀로지 Video Station DTS 재생 불가 해결 (0) | 2021.05.17 |
Synology NAS에서 DNSzi DDNS 업데이트가 되지 않는 경우 (0) | 2021.05.12 |
Synology 시놀로지 레이드라이브 webDAV 접속이 되지 않을 때. (2) | 2021.05.07 |
Synology 시놀로지 나스가 또 생겼다. - 뻘짓기 (0) | 2021.05.03 |
Synology 시놀로지 920+ 디스크 교체 후기 (0) | 2021.05.03 |