인증서가 바로 바뀌어 버리던데, 시계가 맞지 않는 컴퓨터에서는 오류가 나더라구요.

그래서 앞뒤로 1달정도 유예기간을 줘야 그런 오류를 피할 수 있을 것 같은데

 

스크립트를 하나 만들어서 매달 Cron으로 호출하고

Certbot 기본 경로(/etc/letsencrypt)외에 Nginx 설정과 연결된 폴더(실제로 쓰는 인증서)를 만들고 스크립트가 실행되면

1. Certbot 기본 경로에 있던 1달 전에 미리 발급받았던 인증서를 Nginx 설정과 연결된 폴더로 옮기고

2. Certbot 기본 경로에서 인증서 재 발급

이렇게 하도록 스크립트를 만들면 되겠다 싶은데 막막하네요ㅠ

  • profile

    시계가 한 달씩 안 맞는 컴퓨터라면 전세계 대부분의 사이트를 이용하는 데 심각한 지장이 있을 테니 사용자가 알아서 고칠 겁니다. 그런 극단적인 상황까지 신경쓸 필요는 없고요...

     

    우선, Let's Encrypt 인증서의 유효기간에는 기본적으로 1시간의 여유가 들어 있습니다. 따라서 1시간 이하의 오차는 괜찮습니다. 그것보다 더 큰 오차도 허용하고 싶다면 계속 읽어주세요.

     

    certbot auto 모드로 인증서를 발급받지 말고 certonly (cert only = 인증서만 받는다는 뜻) 모드를 사용하면 인증서 파일만 교체하고 웹서버는 건드리지 않습니다. 아파치, nginx 등 대부분의 웹서버는 인증서 파일이 교체되더라도 reload하기 전에는 실제로 적용되지 않습니다. 이것을 활용하면 비교적 간단하게 딜레이를 적용할 수 있습니다.

     

    예를 들어 cron으로 매주 월요일에 인증서 갱신 시도를 하고 (처음 한 번만 certonly 모드로 발급받으면 그 후에는 그냥 certbot renew 해도 됩니다) 매주 토요일에 웹서버를 reload하도록 설정한다면 파일을 이리저리 옮기는 수고를 하지 않고도 인증서 갱신 후에도 실제로 적용되기까지 5일 정도의 여유가 생기겠지요?^^

     

    다양하게 응용할 수 있다는 장점 외에도, 잘 튜닝해 놓은 nginx 설정을 certbot이 멋대로 주물러대는 것이 싫어서 저는 평소에도 certonly 모드만 사용합니다. 기본 모드는 남의 서버를 막 휘저어놓는 버릇없는 프로그램이예요.

  • profile ?
    제가 괜히 어렵게 생각했네요. 지금까지 매달 1일에 certbot renew&&service nginx reload 돌리고 있었는데, 매달 1일에 certbot renew, 15일에 service nginx reload 돌리는 식으로 이용할 수도 있겠네요