NPM SSL 자동갱신 어느정도 해결된 것 같긴 합니다.
https://svrforum.com/svr/262157
제가 봤던 그 블로그 글이 잘못된 점이 있었습니다. 그 글에서는
를 사용하는데 이렇게 하면 위의 글에서 발생한 에러가 발생합니다.
따라서 위의 스크립트가 아닌
를 사용하면 해결이 됩니다. 하지만 이 방법도 완전한 해결은 아닙니다.
4월 18일에 발급을 받았습니다. let's encrypt 인증서의 기간이 90일이기에 7월 17일부터 재발급이 가능하다는 로그가 뜨면서 갱신이 불가능했습니다.(Skipped)
따라서 내부 automation 항목을 찾아봤더니 --force-renew 항목이 있어 이 옵션을 사용한다면 강제로 인증서를 갱신할 수 있습니다. 따라서
이렇게 사용하시면 될 것 같습니다.
다 된 것 같지만 안되는 것 한가지가 남아있습니다.
(발급자가 Adguard Personal CA 인 것은 애드가드를 써서 그렇습니다.)
Create된 날짜가 갱신이 안되는 것 같습니다. 하지만 정상적으로 유효기간이 늘어난 것을 확인할 수 있습니다.
--> Expires가 늘어난 것으로 봐서는 갱신 된 것 같기도하고 Create는 생성된 날짜이니 재발급은 Create로 취급안하는게 맞는 것 같기도 하고.. 햇갈리네요.
(추가)
컨테이너 재시작하면 정상 갱신되는 것 확인했습니다.
따라서 스크립트는
docker exec -it [NPM 컨테이너 명] certbot renew --force-renew && docker restart [NPM 컨테이너 명]
이 정도면 될 것 같습니다.
Reference:
https://github.com/NginxProxyManager/nginx-proxy-manager/issues/109#issuecomment-490713879
와우,,,!! 결국 답을찾아내셨군요..! 덕분에 저는 엄청 잘쓸거같습니다 ㅎㅎㅎㅎ
요거 나중에 꿀팁에 꼭 넣어야겠습니다
제 방법으로는 컨테이너를 무조건 재시작 해줘야하는 단점이 있기 때문에 완벽하다고는 보기 어렵습니다. 아마 이것도 더 찾아보면 무중단으로 할 수 있을텐데 아직 잘 모르겠습니다. 하지만 개인 사이트 혹은 규모가 크지 않은 경우에는 이 정도만 해도 괜찮지 않을까 싶어서 짧은 지식으로 글 적어봤습니다. 좋게 봐주셔서 감사합니다.
요거를 ExpBox 님이 이전에 올려주신 CLI 실행에 물려 놓으면 되겠네요..
https://svrforum.com/svr/260383
앞에 bash 만 붙이시면 됩니다.
bash docker exec -it [NPM 컨테이너 명] certbot renew --force-renew && docker restart [컨테이너명]
실행은 1달에 한번..
그럼 신경 안쓰고 사셔도 될듯...
위에 말씀하신데로, 단점은 요거 재부팅 되는 동안 도메인 접속 안되니까.. 늦은 새벽 시간대로 설정해 놓으시면 좋을듯 하네요..
오라클 클라우드에 적용해놓은거라 생각도 못했는데 아주 좋은 방법인 것 같습니다.
오라클 클라우드라면, Cron or Crontab 을 이용하시면 될것 같습니다.
아래 링크가 있으니 간단히 기능 공부하시면 금방 적용 하실수 있을거에요..
https://velog.io/@gidskql6671/%EC%9E%91%EC%97%85-%EC%9E%90%EB%8F%99%ED%99%94%EB%A5%BC-%EC%9C%84%ED%95%9C-%ED%81%AC%EB%A1%A0%ED%83%AD%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90
감사합니다. 제가 블로그 글이라고 링크 걸어놨던 글에도 crontab을 사용하던데 사용 방법만 간단하게 되어있어서 조금 더 찾아봐야겠다는 생각을 하던 참이었습니다. 참고해서 잘 적용해놓겠습니다.
docker exec -t 이름 certbot renew --force-renew && docker restart 이름
cmt alert