LetsEncrypt 인증서가 갱신되지 않음

정말 까다로운 문제였네요! Let’s Encrypt가 잘못된 호스트로 요청을 보내는 이유를 도저히 떠올릴 수가 없었습니다. 결국 DNS 때문인 경우가 항상 있는 것은 아니었네요.

요약하자면: 기존 Discourse 도메인 외에 베어 도메인(bare domain)에 대한 인증서도 발급받도록 Let’s Encrypt에 설정해 두었다가, 나중에 베어 도메인의 DNS를 다른 사이트로 변경한 것이 원인이었습니다.

좀 더 자세한 설명 . . .

어느 날 discourse.gomomentum.org뿐만 아니라 gomomentum.org에 대한 요청도 Discourse가 처리하도록 하고 싶으셨을 겁니다. 그래서 여기에서 설명한 대로 app.yml에 스타네이(stanza)를 추가하셨을 것입니다: Set up Let’s Encrypt with multiple domains / redirects

즉, Let’s Encrypt는 두 도메인 모두가 원래 Discourse 서버로 가리키고 있는지 확인했습니다.

이것이 왜 다른 도메인에 대한 요청이 Let’s Encrypt로 가고 있었는지를 설명해 줍니다.

그리고 또 다른 날, 아마도 수년 전이겠지만 지난 3개월 사이 누군가는 gomomentum.org가 더 이상 Discourse 사이트가 아니라 메인 사이트로 가리켜야 한다고 결정했습니다. 그 시점에 Let’s Encrypt가 작동하지 않게 되었지만, 인증서는 3개월간 유효하므로 이 일이 발생한 시점에서는 DNS 변경과 인증서 갱신 실패를 연결 짓기 거의 불가능한 상태였습니다.

해당 스타네이를 app.yml에서 제거하고 재빌드(rebuild)를 진행했는데, 이제 정상적으로 돌아가고 있습니다!