출처 - https://svrforum.com/nas/1234158
Let's Encrypt WildCard SSL 발급 및 적용
제 synology에 도메인을 3개를 세팅하여 synology 전반적인 도메인용, 단축 url서비스용(혼자쓰긴함.;;), 웹스테이션용 이렇게 세팅해서 사용 중에 있습니다. 그래서 하나의 인증서에 위 3개의 도메인
svrforum.com
개인 저장용으로 작성합니다.
제 synology에 도메인을 3개를 세팅하여 synology 전반적인 도메인용, 단축 url서비스용(혼자쓰긴함.;;), 웹스테이션용
이렇게 세팅해서 사용 중에 있습니다.
그래서 하나의 인증서에 위 3개의 도메인에 대한 WildCard 인증서를 받아 사용중인대 완벽하지는 않을 수 있으나
1~2년 이상 사용중이나 별 문제 없어 코드 보관겸 작성합니다.
부족한 부분이 있으면 지도 부탁드립니다.😀
[준비물]
- Cloudflare에 DNS 등록된 도메인
- Cloudflare 영역관리 DNS API키
[Cloudflare API키 발급 받기]
- https://dash.cloudflare.com/profile/api-tokens 접속
- 토큰 생성
- 영역 DNS 편집
아래와 같이 세팅

특정 도메인만 세팅시

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

위와 같이 세팅 후 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 사이트
https://github.com/acmesh-official/acme.sh/wiki/Synology-NAS-Guide
[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
'Server' 카테고리의 다른 글
[AIX] crontab 명령어, cron log 확인, 재기동 방법 (0) | 2024.01.26 |
---|---|
AIX netstat 명령어 - 포트 오픈 여부 확인하는 방법 (0) | 2023.10.31 |
AIX 포트번호로 프로세스 정보 확인하기 (0) | 2023.10.31 |
AIX CPU,메모리 사용현황 조회 / 메모리사용률 PROCESS 나열 (0) | 2021.10.06 |
code-server java springboot maven(ing) (0) | 2021.03.09 |