
Synology NAS에 DDNS 주소로 등록해놓고 SSL을 등록해놓았는데 인증서 갱신이 자동으로 안되서 계속 오류가 나더라…
그래서 인터넷 찾아보다가 발견한 현호님 Hlog.
설명을 완전 잘해주셔서 바로 SSL 등록 완료.
자동 갱신까지 잘 되길 바라며 공부하기 위해 정리 해본다.
시놀로지에 Wildcard SSL 인증서 등록하고 자동으로 갱신하는 방법을 알아보자.
준비
진행하기 전, 어떤 것들을 준비해야 하는지 알아보자.
-
Cloudflare에 등록한 개인 도메인 (반드시 Cloudflare에서 구매한 도메인일 필요는 없다.)
Cloudflare에 도메인 등록 방법
-
Cloudflare 접속 » 로그인 » 계정 & 암호 입력 후 로그인
-
[도메인 추가] 클릭
-
도메인 주소 입력 » [계속]
-
Free 선택 » [계속]
-
[레코드 추가] » [활성화로 계속]
-
도메인 등록 완료
-
Cloudflare User API Token
Cloudflare User API Token
-
Cloudflare 접속 » 로그인 » 계정 & 암호 입력 후 로그인
-
프로필 » 내 프로필
-
[API 토큰]
-
[토큰 생성]
-
영역 DNS 편집 – [템플릿 사용]
-
영역 리소스 – [도메인 선택] » [요약 계속]
-
[토큰 생성]
-
[COPY] – 복사
-
-
-
NAS 기본 인증서 경로
NAS 기본 인증서 경로 확인 방법
- SSL 접속
-
나는 주로 Windows를 사용하므로 Putty 프로그램을 이용하여 SSH에 접속 한다.
login as: [사용자 이름 입력]test@192.168.0.3’s password: [암호 입력]Using terminal commands to modify system configs, execute external binary files, add files, or install unauthorized third-party apps may lead to system damages or unexpected behavior, or cause data loss. Make sure you are aware of the consequences of each command and proceed at your own risk.Warning: Data should only be stored in shared folders. Data stored elsewhere may be deleted when the system is updated/restarted.
test@synology:~$ -
-
관리자 권한 얻기
sudo -i
test@synology:~$ suto -iPassword: [암호 입력]root@synology:~# - 명령어 입력하여 확인하기
cat /usr/syno/etc/certificate/_archive/DEFAULT
root@synology:~# cat /usr/syno/etc/certificate/_archive/DEFAULT[기본 인증서 경로]root@synology:~#
- SSL 접속
SSL 등록
-
스크립트 복사하여 [Cloudflare User API Token], [Cloudflare 계정 이메일 주소], [나의 도메인], [기본 인증서 경로] 수정하기
⭐ 메모장에 스크립트 붙여넣기 » 키보드의 CTRL + H로 바꾸기 창 열기 » 위 칸에는 바꾸고자 하는 항목을 하나씩 [괄호]까지 입력 » 아래 칸에는 수정할 항목 입력 » [모두 바꾸기] 클릭
wget https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh #acme.sh 다운로드 chmod a+x acme.sh # 권한 설정 mkdir /root/.acme.sh # 디렉토리 생성 sh acme.sh --upgrade # 스크립트 업데이트 sh acme.sh --set-default-ca --server letsencrypt # CA 변경 export CF_Token="[Cloudflare User API Token]" # Cloudflare USER API Token export CF_Email="[Cloudflare 계정 이메일 주소]" # Cloudflare 계정 이메일 주소 sh acme.sh --issue --dns dns_cf -d [나의 도메인] -d '*.[나의 도메인]' # 와일드카드 인증서 발급 cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].cer /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/cert.pem cp /root/.acme.sh/[나의 도메인]_ecc/ca.cer /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/chain.pem cp /root/.acme.sh/[나의 도메인]_ecc/fullchain.cer /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/fullchain.pem cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].key /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/privkey.pem # 인증서 등록 cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].cer /usr/syno/etc/certificate/system/default/cert.pem cp /root/.acme.sh/[나의 도메인]_ecc/ca.cer /usr/syno/etc/certificate/system/default/chain.pem cp /root/.acme.sh/[나의 도메인]_ecc/fullchain.cer /usr/syno/etc/certificate/system/default/fullchain.pem cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].key /usr/syno/etc/certificate/system/default/privkey.pem # 기본 인증서 등록 synosystemctl restart nginx # nginx 서비스 재시작
- SSL 접속
-
나는 주로 Windows를 사용하므로 Putty 프로그램을 이용하여 SSH에 접속 한다.
login as: [사용자 이름 입력]test@192.168.0.3’s password: [암호 입력]Using terminal commands to modify system configs, execute external binary files, add files, or install unauthorized third-party apps may lead to system damages or unexpected behavior, or cause data loss. Make sure you are aware of the consequences of each command and proceed at your own risk.Warning: Data should only be stored in shared folders. Data stored elsewhere may be deleted when the system is updated/restarted.
test@synology:~$ -
-
관리자 권한 얻기
sudo -i
test@synology:~$ suto -iPassword: [암호 입력]root@synology:~# -
수정해놓은 스크립트 붙여넣기 » 자동으로 한 줄씩 붙여넣기 된다.
root@synology:~# wget https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.shroot@synology:~# chmod a+x acme.shroot@synology:~# mkdir /root/.acme.shroot@synology:~# sh acme.sh –upgraderoot@synology:~# sh acme.sh –set-default-ca –server letsencryptroot@synology:~# export CF_Token=”[Cloudflare User API Token]”root@synology:~# export CF_Email=”[Cloudflare 계정 이메일 주소]”root@synology:~# sh acme.sh –issue –dns dns_cf -d [나의 도메인] -d ‘*.[나의 도메인]’root@synology:~#root@synology:~# cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].cer /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/cert.pemroot@synology:~# cp /root/.acme.sh/[나의 도메인]_ecc/ca.cer /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/chain.pemroot@synology:~# cp /root/.acme.sh/[나의 도메인]_ecc/fullchain.cer /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/fullchain.pemroot@synology:~# cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].key /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/privkey.pemroot@synology:~# cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].cer /usr/syno/etc/certificate/system/default/cert.pemroot@synology:~# cp /root/.acme.sh/[나의 도메인]_ecc/ca.cer /usr/syno/etc/certificate/system/default/chain.pemroot@synology:~# cp /root/.acme.sh/[나의 도메인]_ecc/fullchain.cer /usr/syno/etc/certificate/system/default/fullchain.pemroot@synology:~# cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].key /usr/syno/etc/certificate/system/default/privkey.pemroot@synology:~#root@synology:~# synosystemctl restart nginxroot@synology:~# -
DSM 접속 » [제어판] » 보안 » 인증서 » SSL 등록 후 기본 인증서 등록까지 완료 되었다.
SSL 인증서 자동 갱신
-
스크립트 복사하여 [나의 도메인], [기본 인증서 경로] 수정하기
⭐ 메모장에 스크립트 붙여넣기 » 키보드의 CTRL + H로 바꾸기 창 열기 » 위 칸에는 바꾸고자 하는 항목을 하나씩 [괄호]까지 입력 » 아래 칸에는 수정할 항목 입력 » [모두 바꾸기] 클릭
sh acme.sh --issue --force --dns dns_cf -d [나의 도메인] -d '*.[나의 도메인]' cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].cer /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/cert.pem cp /root/.acme.sh/[나의 도메인]_ecc/ca.cer /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/chain.pem cp /root/.acme.sh/[나의 도메인]_ecc/fullchain.cer /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/fullchain.pem cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].key /usr/syno/etc/certificate/_archive/[기본 인증서 경로]/privkey.pem cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].cer /usr/syno/etc/certificate/system/default/cert.pem cp /root/.acme.sh/[나의 도메인]_ecc/ca.cer /usr/syno/etc/certificate/system/default/chain.pem cp /root/.acme.sh/[나의 도메인]_ecc/fullchain.cer /usr/syno/etc/certificate/system/default/fullchain.pem cp /root/.acme.sh/[나의 도메인]_ecc/[나의 도메인].key /usr/syno/etc/certificate/system/default/privkey.pem synosystemctl restart nginx
-
DSM 접속 » [제어판] » [작업 스케줄러]
-
[작업 스케줄러] » [예약된 작업] » [사용자 정의 스크립트]
-
일반 설정
작업: SSL Renew (중요하지 않음) 사용자: root
-
[스케줄]
다음 날짜에 실행 시작: 원하는 시작 일자 지정 반복: 매월 반복 선택 시작 시간: NAS를 사용하지 않은 시간으로 지정
-
[작업 설정] » 사용자 정의 스크립트 입력 » [확인]
-
완성. 이제 매월 갱신한다.