Let's Encrypt 설치 후 사이트에 접속할 수 없습니다

Discourse에 Let’s Encrypt를 설치했는데 이제 사이트가 열리지 않습니다. 제가 뭘 잘못했을까요? 아이디어가 있으면 알려주세요.
Let’s Encrypt를 설치하기 위해 주석 처리된 줄을 해제하고 앱을 다시 빌드했습니다.
이제 "Safari가 연결할 수 없습니다…"라는 오류 메시지가 뜨고 있습니다.
놓친 부분이 있을까요?

expose 섹션에서 포트 443도 주석 해제하셨나요?

해당 줄 앞에 # 기호가 있다면 제거한 후 다시 빌드해 보세요.

Discourse를 어떻게, 언제 설치하셨나요? Let’s Encrypt가 기본 옵션으로 설정된 지 꽤 되었습니다.

이미 제안드린 대로 포트가 열려 있는지 확인해야 합니다. 그리고 설정이 제대로 되지 않은 상태로 여러 번 다시 빌드하면 Let’s Encrypt의 요청 제한(rate limit)에 도달할 수 있습니다.

네, 그렇게 했습니다. 저는 EC2 인스턴스를 사용 중이라 리다이렉트가 다른 곳에 설정되어 있는지 궁금합니다. @pfaffman 이미 SSL 없이 설정되어 있었지만, Auth0로 테스트하려면 사이트에 https가 실행 중이어야 합니다.

포트 443이 열려 있는지 확인하려면 보안 설정을 살펴봐야 할 수 있습니다.

discourse-setup을 실행하면 호스트 이름을 통해 두 포트에 모두 접근할 수 있는지 확인을 수행합니다.

방금 시도해 봤는데, 두 포트 모두에서 설치에 연결할 수 없다고 표시됩니다.
인스턴스의 보안 설정을 확인해 보니 제 IP 주소에서 인스턴스로의 포트가 열려 있습니다.

letsencrypt가 작동하려면, letsencrypt 서버가 인스턴스에 접근할 수 있도록 허용해야 합니다. AWS 보안 그룹 설정에서 0.0.0.0/0, 즉 모든 위치에서 포트 80과 443을 열면 가장 좋습니다.

오, 클레멘트, 안녕. 방금 이게 너였다는 걸 알았어!

지난 11월에 받은 이메일에 따르면, Discourse 앞에 로드 밸런서가 있는 것 같으니, 로드 밸런서에서 HTTPS를 처리하도록 설정해야 해. 그게 인스턴스에서 Let’s Encrypt가 활성화되지 않은 이유를 설명해 줄 거야. Let’s Encrypt 인증서를 제거하는 게 좋겠고, 포트 443을 열지 않는 것도 나쁘지 않지만, 크게 중요한 문제는 아니야. 그리고 나서 AWS 로드 밸런서에서 HTTPS를 처리하는 방법을 찾아야 해.

이것도 포트가 열려 있지 않은 이유를 설명해 주는데, 로드 밸런서가 중간에 있기 때문이야.

제이, 고마워. 확인해볼게, 하지만 개발용 서버를 로드 밸런서 뒤에 두진 않았을 것 같아. 혹시 모르니 다시 한번 확인해볼게.

음. 둘 중 하나를 사용했을 것 같은데, 그렇게 하면 현재 일어나고 있는 현상을 설명할 수 있겠네요.

아니요. 로드 밸런서가 없습니다. 인스턴스의 IP 주소로 직접 연결되어 있어요.
다른 방법을 시도해 봐야겠어요.

개발 인스턴스라면 app.yml을 다른 이름으로 변경한 뒤 discourse-setup을 다시 실행해 보세요. 테스트가 실패한다면 DNS가 깨졌거나 포트가 차단되어 있는 것입니다(다른 프로세스가 실행 중인가요?).

이제 http로 접속하면 Welcome to nginx가 표시되네요. 아마 LetsEncrypt 설정을 할 때 잘못된 지침을 따랐나 봅니다 :man_facepalming:t6:

외부 nginx가 실행 중일 가능성이 높습니다.

외부 nginx를 제거하거나 비활성화하세요.

그 지침을 따르지 말고, 기존 app.yml 파일 이름을 변경한 후 discourse-setup을 실행하세요. 그러면 모든 작업이 자동으로 처리됩니다.

방금 시도해 봤는데 작동하지 않았습니다. 로그에서 처음에는 방화벽 문제를 언급하다가, 그 다음에는 "error creating new order too many failed authorisations"라는 메시지가 표시되어 Let’s Encrypt 관련 줄을 주석 처리하고 Amazon 인증서를 사용한 로드 밸런서 뒤에 두었는데, 지금은 bad gateway 오류가 나고 있습니다.

네. 너무 많이 재구축하면 해당 서비스에서 레이트 리미팅에 걸릴 수 있습니다. 로드 밸런서 뒤에서 사용하는 경우는 여기서 도움을 받을 수 있는 범위를 벗어납니다.

지금 가장 쉬운 방법은 다른 호스트 이름을 선택하여 EC2(또는 새로운 인스턴스)를 가리킨 후 다시 시도하는 것입니다. 다른 해결책은 일주일 정도 기다린 후 다시 시도하는 것입니다.

좋아요, 기다릴게요. 그럼 백로그 맨 아래로 내려가겠네요.
도움 주셔서 감사합니다.

나였다면 지금 바로 로드 밸런서를 비활성화하고, 포트가 열려 있는지 세 번은 확인했을 거야. 일주일 뒤에 그걸 기억해서 확인할 일은 없으니까. :slight_smile: