■ 증상
SSL 인증서(Let's Encrypt)가 6월 9일 11시 27분에 만료되어 ▲커뮤니티(debianusers.or.kr), ▲위키(wiki.debianusers.or.kr) 사이트로 HTTPS 연결을 할 수 없었습니다.
■ 문제 발생 기간
2019.6.9.(일) 11:27 ~ 2019.6.16.(일) 09:26
■ 대처가 늦은 이유
현재 수험 생활 중이라, 주말에 잠깐 시간을 내어서 사이트를 확인합니다. 지난주 토요일(6월 8일)에 사이트를 확인했을 때에는 HTTPS 접속에 문제가 없었습니다. 공교롭게도 사이트에 방문하고 난 다음날(6월 9일)에 인증서가 만료되었습니다. 이후 다시 돌아오는 주말(6월 16일)이 되어서야, HTTPS 연결에 문제가 있음을 확인했습니다.
■ SSL 인증서 갱신 방법
크론탭(contab)에 등록된 인증서 갱신 스크립트(certbot renew --quiet 명령을 수행함)가, SSL 인증서를 매일 2회에 걸쳐 자동으로 갱신합니다.
■ 인증서가 갱신되지 않은 이유
레츠 인크립트(Let's Encrypt)가 더이상 'TLS-SNI-01'를 지원하지 않기 때문에, 인증서가 갱신되지 않았습니다.
■ 해결 방법
certbot(SSL 인증서를 발급 및 갱신하는 프로그램)을 업그레이드 한 후에, SSL 인증서를 재발급 받았습니다.
- certbot 버전(기존): v0.10.2
- certbot 버전(업그레이드): v0.28.0
■ 반성
그동안 SSL 인증서가 자동으로 잘 갱신되었기 때문에, SSL 인증서의 갱신에 문제가 발생할 것이라고는 생각을 하지 못했습니다. 앞으로 SSL 인증서 관리에 좀 더 신경쓰도록 하겠습니다.
Comments
수고 많으셨습니다. 2019.6.15.(토)에…
수고 많으셨습니다. 2019.6.15.(토)에 서울시 공무원 시험 있던데, 거기도 응시하셨나 궁금하네요.
서울시 시험은 미응시
서울시 시험(6월 15일)에는 응시하지 않고, 오늘(6월 22일) 군무원 시험을 치렀습니다.
제게 관심을 가져 주셔서 고맙습니다.
정말 고생 많으셨습니다. \o/
시험도 고생하시고 사이트 관리도 고생하시고 정말 고생 많으셨습니다. \o/
고맙습니다.
말씀 정말 고맙습니다. :-)
이곳의 certbot 갱신 주기
이곳처럼 certbot으로 매일 2회 갱신 시도하면 어떤 주기로 갱신되는 건가요?
제가 관리하는 사이트들은 거의 모두 직접 수동으로 갱신해서, 최소 갱신 기간 같은걸 잘 몰라서요, 궁금해졌습니다.
이곳의 인증서가 6월 16일 마지막으로 갱신되었다고 뜨는 걸 봐선 매번 마다는 아닌거같군요 ㅎㅎㅎ
인증서_갱신_시각 ← 인증서_갱신_시각 + 인증서_갱신_지연_시각(임의의 값)
댓글로 답변을 작성하기에는 양이 너무 많아서, 댓글은 간략히 작성하였습니다. 아래의 문서에 자세한 내용을 직접 작성하였으니 참고해 주십시오.
https://wiki.debianusers.or.kr/index.php?title=Certbot
■ certbot의 갱신 주기
certbot 프로젝트에서는 매일 2회에 걸쳐서 인증서를 갱신하는 것을 권장합니다. 일반적으로 인증서의 갱신 시각은 정오(12시)와 자정(00시)를 기준으로 삼습니다.
그러나 항상 정오와 자정에 인증서가 갱신되지는 않습니다. 왜냐하면 '인증서_갱신_시각 ← 인증서_갱신_시각 + 인증서_갱신_지연_시각(임의의 값)'으로 인증서의 갱신 시각이 매번 다르게 계산되기 때문입니다.
■ 크론탭에서 인증서 갱신 명령을 삭제
댓글을 작성하기 위해 준비하는 과정에서, 크론탭으로 인증서를 갱신하는 것이 문제가 있다는 것을 알았습니다. 그동안 ▲커뮤니티(debianusers.or.kr) ▲위키(wiki.debianusers.or.kr) 사이트는 매일 2회에 걸쳐서 인증서가 갱신된 것이 아니라, 매일 4회에 걸쳐서 인증서가 갱신되었습니다.
데비안 9.0 이상의 버전에서는 시스템디(systemd)를 활용(certbot.timer와 certbot.service)하여 인증서가 자동으로 갱신됩니다. 그런데 저는 이러한 사실을 모른 채, 인증서를 자동화하는 방법은 크론탭이 당연하다고 생각했습니다. 현재는 시스템디만을 활용하여 SSL 인증서를 갱신하도록 조치하였습니다.