• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
정보

Let's Encrypt WildCard SSL 발급 및 적용

해피몽 1036

8

26

제 synology에 도메인을 3개를 세팅하여 synology 전반적인 도메인용, 단축 url서비스용(혼자쓰긴함.;;), 웹스테이션용

이렇게 세팅해서 사용 중에 있습니다.

그래서 하나의 인증서에 위 3개의 도메인에 대한 WildCard 인증서를 받아 사용중인대 완벽하지는 않을 수 있으나

1~2년 이상 사용중이나 별 문제 없어 코드 보관겸 작성합니다.

부족한 부분이 있으면 지도 부탁드립니다.😀

 

[준비물]

  1. Cloudflare에 DNS 등록된 도메인
  2. Cloudflare 영역관리 DNS API키

[Cloudflare API키 발급 받기]

  1. https://dash.cloudflare.com/profile/api-tokens 접속
  2. 토큰 생성
  3. 영역 DNS 편집

  아래와 같이 세팅

 

image.png.jpg

 

특정 도메인만 세팅시

image.png.jpg

모든 도메인 세팅시(전 이걸 사용)

image.png.jpg

위와 같이 세팅 후 API토큰 생성

생성된 토큰은 1회만 보여지며 다시 확인이 안되니 잘 복사해두시고 분실시 다시 발급 받으셔야 합니다.

그리고 생성된 API코드는 DDNS용 업데이트용으로도 사용가능하며 도메인에 대한 여러 설정이 가능하니

유출 주의 바랍니다.

[acme.sh 설치]

ssh접속 후 root 권한으로 하시는걸 추천 합니다. (sudo -i)

cd ~
wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
tar xvf master.tar.gz
cd acme.sh-master/
./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "이메일주소" --server letsencrypt
source ~/.profile
cd ..
rm -r acme.sh-master
rm -r master.tar.gz 

 

[인증서 첫 발급 및 연장용 스크립트]

#!/usr/bin/env sh
export CF_Email="이메일주소" # CloudFlare 아이디 (수정)
export CF_Token="AAAAAAAAAAAAAAAAAAAAAAA...." # CloudFlare API 토큰 (수정)
export CERT_FOLDER="$(find /usr/syno/etc/certificate/_archive/ -maxdepth 1 -mindepth 1 -type d)"

export CERT_DNS="dns_cf"
export CERT_DOMAIN="-d domain1.com -d domain2.com -d domain3.com -d *.domain1.com -d *.domain2.com -d *.domain3.com" # 발급받을 도메인 리스트 (수정)
CERT_FILE="$CERT_FOLDER/cert.pem"
KEY_FILE="$CERT_FOLDER/privkey.pem"
FULL_FILE="$CERT_FOLDER/fullchain.pem"
CAPATH_FILE="$CERT_FOLDER/chain.pem"

# 신규 생성 (아래 주석 해지 후 실행)
/usr/local/share/acme.sh/acme.sh --set-default-ca --server letsencrypt
/usr/local/share/acme.sh/acme.sh --issue $CERT_DOMAIN --dns $CERT_DNS --cert-file "$CERT_FILE" --key-file "$KEY_FILE" --fullchain-file "$FULL_FILE" --capath "$CAPATH_FILE" --dnssleep 20 --force

# 업데이트  (아래 주석 해지 후 실행)
#/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh --force

# Sysnology 계정 설정정
export SYNO_Create=1
export SYNO_Port="5001" #DSM 접속 포트 (수정)
export SYNO_Scheme="https"
export SYNO_Username="root" #DSM 관리자 계정 (수정)
export SYNO_Password="qwertyuiop" #DSM 관리자 패스 (수정)
export SYNO_Certificate=""

# 기본 인증서 배포
/usr/local/share/acme.sh/acme.sh --insecure --deploy $CERT_DOMAIN --deploy-hook synology_dsm

# 서버 다시 시작 (DSM 7.x)
#/usr/syno/bin/synosystemctl reload nginx
sudo systemctl restart nginx
 

위 코드를 편하신 곳에 wSSL.sh와 같이 저장 후 (수정)부분을 각자에 맞게 변경. ssh에서 실행 인증서를 발급 받습니다.

신규 생성 후에는 신규 생성부분을 주석 처리 업데이트 부분을 주석 삭제 후 작업 스케쥴러에 3개월 또는 매월 반복 등으로 등록하시면 지속 적으로 인증서가 업데이트가 가능합니다.

아래 acme.sh의 제가 종정 사용하는 코드를 추가합니다.

 

acme.sh 사이트

 

[acme.sh 리스트 확인하기]

/usr/local/share/acme.sh/acme.sh list 

[acme.sh 버전확인]

/usr/local/share/acme.sh/acme.sh -v 

[acme.sh 자동 업그레이드 하기]

/usr/local/share/acme.sh/acme.sh --upgrade --auto-upgrade 

[Synology DSM 업그레이드 후 손상된 환경 수정]

/usr/local/share/acme.sh/acme.sh --force --upgrade --nocron --home /usr/local/share/acme.sh 

[acme.sh 도메인 삭제]

/usr/local/share/acme.sh/acme.sh --remove -d yourdomain.com 

[acme.sh 삭제]

/usr/local/share/acme.sh/acme.sh --uninstall
rm -r /usr/local/share/acme.sh
rm -r /root/.acme.sh 
신고공유스크랩
26
해피몽 글쓴이 2024.02.18. 15:54
참빛바다
더 좋은 방법들이 많을 탠대 제가 사용하던 방법 정리한 것 뿐입니다.
profile image 3등
달소 2024.02.18. 16:01
크,, 정성 가이드 감사드립니다. 가이드글에 포함시켜도 괜찮을까요!?
https://svrforum.com/recent/1234776 글도 포함해서요!
profile image
짹짹이 2024.02.18. 17:09
덕분에 14시간동안 걸린 사투가 끝났습니다... 드디어 성공했네요. 조만간 후기 남기겠습니다. 대단히 감사합니다 ㅠㅠㅠㅠㅠ
profile image
짹짹이 2024.02.19. 03:48
짹짹이
한번 세팅후 신규생성 부분을 주석처리하고 업데이트 구문의 주석을 제거한 .sh파일을 제어판-작업스케줄러에 등록하면 임의로 설정한 주기마다 인증서를 업데이트 해주나요?
profile image
짹짹이 2024.02.19. 09:22
해피몽
혹시 인증서 첫 발급 및 연장용 스크립트 부분의 코드 전부를 .sh 파일로 만들어서 하면 되는거 맞을까요? /usr/bin/env: 'sh\r': No such file or directory 라는 에러가 계속 발생해서... ㅠㅠ
해피몽 글쓴이 2024.02.19. 09:34
짹짹이

넵 전체 코드 해주시면되요.

신규등록 부분만 코드 2줄 주석하고

업데이트 코드만 해지 해주심되요.
그리고 권한은 root로 해주심되구요.
그리고 업데이트 테스트 위해서 연속적으로 반복 실행하시면 24시간 발급 정지되니 주의 하세요.

profile image
짹짹이 2024.02.20. 05:43
해피몽

아 작업스케줄에서 경로 설정할때 /bin/touch /volume4/로 해야하는데 /volume4/로 했었네요 ㅋㅋㅋ 일단 에러는 안뜨긴 하는데 그런데 이게 dsm 제어판-보안-인증서에서는 날짜가 갱신이 되는데 크롬에서 인증서보면 날짜 갱신이 안되는데 결국 갱신이 안된걸까요.,,,?

profile image
짹짹이 2024.02.20. 05:57
짹짹이
아니면 혹시 클라우드플레어에서 도메인을 직접 구매한게 아니라면 작업스케줄러 사용말고도 클라우드플레에서 해줘야 하는것이 있을까요...?
해피몽 글쓴이 2024.02.20. 11:15
짹짹이
Cloudflare에서 해줘야할건 없습니다. 어차피 API키로 알아서 도메인 인증부분을 처리하고
그리고 제가 알기로 인증서가 매일 한다고 날짜가 업데이트 되지 않는 걸로 알고 있습니다.
만기일 1달인가 14일인가 남았을때만 갱신이 되어지는 걸로 알고 있습니다.
mc용 2024.02.18. 20:43
[인증서 첫 발급 및 연장용 스크립트]를 wSSL.sh파일로 저장까지는 했는데 이 파일을 어떻게 하는건지 초보라서 잘 이해가 안되는데 어떻게 하는건지 문의 드립니다~
해피몽 글쓴이 2024.02.19. 09:13
mc용
첫발급시는 위 코드를 ssh에서 실행하시고 정상 설치 이후에는 위코드에서 신규부분은 주석하시고 업데이트 코드 주석해지 후 제어판에 스케쥴러에 등록 해서 사용하시면 되실꺼에요.
서맹 2024.02.18. 21:36
와일드카드 인증서 하나때문에 npm 쓰는데 리부팅시 npm이 너무 늦게 올라와 불편하더라고요.
이걸로 해봐야겠네요. 정리해주셔서 감사합니다.
블랙앤해적 2024.02.19. 18:40
1. 자동갱신할때 # renew certificates
/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/
이것만 넣어도 되는지여.
공식문서 보니 위문장만 넣으라고 되잇거든여.

2. sudo systemctl restart nginx 자동갱신에 이 문장 빼도 되는지요.
dsm자체가 재시작되더군여.
사이트마다 다 다르니 너무 헷갈리네요
해피몽 글쓴이 2024.02.19. 19:25
블랙앤해적
1. --force을 빼셔도 현재 버전에서는 작동할겁니다. 코드가 예전 버전에서부터 사용하다보니 예전 버전에서 이슈가 있었어서 추가 했던걸로 기억합니다.

2. 빼서도 문제는 없는대 브라우져에서 반영이 바로 안되는 경우가 있어서 추가 하였습니다.
12

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

첨부 0

번호 분류 제목 글쓴이 날짜 조회 추천
공지 정보 DSM 7.2v) Mshell로 헤놀로지 부트로더 빌드하기. 63 달소 23.05.29.01:57 25765 +25
공지 정보 DSM 7.2v) ARPL-i18n(rr)으로 헤놀로지 부트로더 빌드하기. 73 달소 23.05.23.23:58 27327 +23
가이드 나만의 구독 관리하기 Wallos 서버 구축하기.(DSM) 4 달소 1일 전17:30 267 +2
업데이트 m.2 nvme 단독설치(DSM 및 볼륨)를 위한 nvmesystem addon for mshell 배포. 17 화정큐삼 4일 전21:48 342 +8
업데이트 nvmesystem addon for mshell 을 테스트 중입니다. 5 화정큐삼 4일 전12:06 177 +6
486 정보
image
초이은수 3일 전14:40 200 0
485 정보
normal
에스브이알2 4일 전09:21 111 0
484 정보
image
FantomD 24.05.05.12:47 743 +6
483 정보
normal
블랙앤해적 24.04.29.20:02 413 +1
482 정보
image
EXP 24.04.08.19:30 1064 +2
481 정보
image
EXP 24.04.08.00:29 650 +1
480 정보
normal
쵸비요 24.04.06.14:47 225 0
479 정보
image
빨간물약 24.03.30.13:54 416 +1
478 정보
normal
TheSTREET 24.03.30.00:43 452 0
477 정보
normal
알랑1 24.03.24.16:32 859 +2
476 정보
normal
EXP 24.03.15.17:58 292 +3
475 정보
normal
EXP 24.03.15.17:47 163 0
474 정보
normal
깜이 24.03.10.19:39 129 0
473 정보
normal
TheSTREET 24.03.10.02:53 298 +1
472 정보
image
EXP 24.03.07.13:36 558 +4
471 정보
image
장인극장 24.03.01.11:10 582 0
470 정보
image
파인콘 24.02.19.22:40 385 +4
469 정보
normal
해피몽 24.02.18.15:22 430 +2
정보
image
해피몽 24.02.18.09:51 1036 +8
467 정보
normal
빠가로티 24.02.14.07:55 421 +3