작업 스케줄러를 통해서 인증서 자동갱신 관련 질문
Solved
뉴비를 위한 질문 공간
-
#!/bin/bash /usr/local/share/acme.sh/acme.sh --cron /usr/local/share/acme.sh/acme.sh --deploy --insecure --home /usr/local/share/acme.sh/ -d "도메인주소" --deploy-hook synology_dsm --debug 2
홈페이지 제작자님이 작성해주신 위 코드로 인증서 자동갱신을 하는데 최근 몇번 해보니까 이게 로그에서는 아무 문제없이 잘 됐다고 하는데 실질적으로는 인증서가 갱신되질 않네요.
다른 사이트에서 어떤분 말로는 이게 3달 간격으로 갱신해줘야 하고 갱신만료 한달전쯤인가 그때부터만 갱신이 된다던데 맞나요?
로그는 개인정보가 너무 많이 있어서 확인해야 된다고 하시면 개인정보 일일이 수정하여 올리겠습니다.
사실 당장은 다음 갱신일이 6월 3일인가 그래서 전혀 급하진 않지만 찝찝해서 여쭤봅니다 ㅠㅠ -
@hojin0716 갱신은 한 달 전부터 됩니다. 강제로 하고 싶으면
--force
를 붙이면 됩니다.
당연히 정상적으로 종료 되었으니 로그에서 아무 문제가 없다고 뜨는 것이 정상인겁니다.
강제 옵션을 넣지 않았으니, 갱신이 되지 않는 것도 정상이구요.#!/bin/bash ## SPDX-License-Identifier: MIT # 변수 설정 ACME_HOME="/usr/local/share/acme.sh" DOMAIN="navystack.com" # SSL 인증서 갱신 및 로그 출력 log_output=$($ACME_HOME/acme.sh --cron --home $ACME_HOME) # 다음 갱신 시간 파싱 next_renewal_time=$(echo "$log_output" | grep -oP 'Next renewal time is: \K[^ ]+') next_renewal_time_kst=$(date -d "$next_renewal_time" +%Y-%m-%dT%H:%M:%S) # 갱신할 필요가 없는 경우 if ! echo "$log_output" | grep -q "to force to renew"; then echo "$log_output" else # 인증서 갱신 생략 echo "인증서 갱신을 생략합니다." echo "갱신 가능 시간은 한국 기준 $next_renewal_time_kst 입니다." echo "따라서, 인증서 배포를 생략합니다." exit 0 fi # 인증서 배포 deploy_output=$($ACME_HOME/acme.sh --deploy --home $ACME_HOME -d "$DOMAIN" --deploy-hook synology_dsm) # 배포 중 오류 처리 if [ $? -ne 0 ]; then echo "인증서 배포 중에 오류가 발생했습니다:" echo "$deploy_output" exit 1 fi echo "인증서 배포가 완료되었습니다."
이렇게 수정해보세요 CA가 ZeroSSL 일 경우 입니다.
구글 인증서 (google GTS), Let's Encrypt 라면 아래의 글을 참고해보세요.시놀로지 클라우드플레어 와일드 카드 인증서 발급 (acme.sh 사용)
고맙습니다.
-