시놀 와일드카드 renew 확실히 되는 방법으로 진행했네요.
여러가이드가 있지만 renew가 잘 안되더라구여..
신 버전으로 업데이트 되서 참고하여 해봣습니다.
아래 갱신부분만 참고해도 됩니다.
1. acme.sh설치 : 설치후 acme.sh ash-4.4# 에서 복사 붙혀넣기 하면됩니다.
sudo su 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 "msy999999@gmailcom" source ~/.profile |
2. dns 구성
export CF_Token="-토큰값" export CF_Email="이메일주소" |
3. 인증서 만들기
export CERT_DOMAIN="도메인주소" export CERT_DNS="dns_cf" ./acme.sh --issue --server letsencrypt --home . -d "$CERT_DOMAIN" --dns "$CERT_DNS" |
4. 배포
export SYNO_USE_TEMP_ADMIN=1 export SYNO_Port="2677" # http포트번호 export SYNO_USERNAME='관리자 id' export SYNO_PASSWORD='관리자 password' export SYNO_OTP_CODE=SAFSDFDASF #2단계인증번호: OTP 코드 입력 export SYNO_Certificate="도메인주소" ./acme.sh --deploy --home . -d "$CERT_DOMAIN" --deploy-hook synology_dsm |
5. 인증서 갱신
작업스케쥴러 -> 생성 -> 작업: Certificates , 사용자: root 작업설정 -> 사용자 정의 스크립트 -> 아래 내용 복사 붙혀넣기
renew 확인하기 -> 아래와 같이 나오면 정상적으로 갱신됩니다.
|
Renew가 안되는 이유는 상대경로와 절대경로를 구분하지 않았기 때문 아닐까요?
거의 모든 대부분의 글에서 상대경로를 사용하는데, 이게 세부 버전별로 먹는 경우도 있고 안먹는 경우도 있더라구요 그래서 저는 사용자 지정 스크립트를 절대경로로 호출합니다. (제가 원격 지원 해드린 분들중 일부는, 심지어 특정 변수는 소문자로 입력해야 하는 경우도 있었음)
https://navystack.com/synology/personal-domain-wildcard-cert/#2-letsencrypt%EC%9D%98-%EA%B2%BD%EC%9A%B0
또한 선생님의 글에서도
cd acme.sh-master/로 이동해서
설치는 /usr/local/share/acme.sh 여기에 하셨고 발급은 acme.sh-master의 경로에서 하신 것 같네요
또한 source ~/.profile를 사용했다면
acme.sh 로 시작해야 합니다. ./acme.sh 를 사용하면 현재 경로가 cd acme.sh-master/를 사용했기에 현재 경로에 발급이 됩니다.
마찬가지로 synosystemctl restart nginx를 사용하 실 필요가 없습니다.
시놀로지 자체 훅으로, 기본 인증서로 바로 대체가 가능합니다.
도움 되셨으면 좋겠네요
시놀로지는 bash말고도 ash도 있습니다.
그래서 사용자 지정 스크립트를 사용하실때, 간단한 것이면 크게 의미는 없지만, 복잡하다면 반드시 셔뱅을 사용해야합니다.
Skip, Next renewal time is: 2024-05-09T06:12:39Z
[Mon Mar 11 16:26:03 KST 2024] Add '--force' to force to renew. 이 메세지 없이 출력되어서요. 할수 없이 되는 인증으로 일단 인증하긴 했지만요 자동갱신이 안되어서 다른 방식을 찾고 있었는데 인증이 된다면야 좋겠네요 ㅎㅎ
cmt alert