LetsEncrypt 인증 오류

튜토리얼에 따라 자체 호스팅 Docker 환경을 설정하고 Let’s Encrypt를 사용하여 HTTPS를 활성화했습니다.

아래 단계에서 항상 실패합니다. HTTPS 없이 설정하면 정상적으로 작동하며 포럼은 HTTP로 공개적으로 접근 가능합니다.

root@discoursetest3-app:/shared/letsencrypt# cat acme.sh.log
…
[Mon 11 Apr 2022 02:56:35 PM UTC] discourse-test3.docentric.com:Verify error:Fetching http://discourse-test3.docentric.com/.well-known/acme-challenge/iEFjgyseuVL1IzIrTjmfhwv0HqV7EgUmQUVhy1nmnCE: Timeout after connect (your server may be slow or overloaded)

ACME 챌린지에 접근할 수 없는 것 같습니다.

그 가이드의 첫 문장을 읽으셨나요? 표준 설치를 수행하는 경우 해당 가이드를 따를 필요가 없다고 나와 있습니다.

최근에 표준 설치를 진행하신 건가요? discourse-setup을 실행하셨나요?

80 포트(그리고 아마도 443 포트도)의 수신 연결이 차단되어 있는 것 같습니다.

이상하게도 첫 번째는 작동하지만 두 번째는 작동하지 않습니다:

○ → curl http://discourse-test3.docentric.com/srv/status
ok

○ → timeout -v 5s curl http://discourse-test3.docentric.com/.well-known/acme-challenge/iEFjgyseuVL1IzIrTjmfhwv0HqV7EgUmQUVhy1nmnCE
timeout: sending signal TERM to command ‘curl’

표준 설정이라면 무엇이 이런 문제를 일으키는지 확신할 수 없습니다.

HTTPS 없이 설치된 오래된 테스트 환경이며, 이제 HTTPS를 활성화하고 싶습니다.
app.yml 파일을 수동으로 편집하거나 discourse-setup을 실행해 보았지만, 두 경우 모두 동일한 오류가 발생했습니다.
또한 Discourse(컨테이너 및 파일)를 삭제하고 처음부터 새로 설치해 보았지만, 결과는 동일했습니다.

80 포트가 사용 불가능해 보이는 것 같다는 의견에 동의합니다. 하지만 app.yml에서 다음 두 줄을 주석 처리하면 포럼은 HTTP로 문제없이 실행됩니다.

  • “templates/web.ssl.template.yml”
  • “templates/web.letsencrypt.ssl.template.yml”

http://discourse-test3.docentric.com/.well-known/acme-challenge/iEFjgyseuVL1IzIrTjmfhwv0HqV7EgUmQUVhy1nmnCE와 같은 정적 파일은 디스크의 어디에 위치합니까?

결국 회사 방화벽에서 차단된 것이 ACME 프로토콜뿐이었네요. 이제 잘 작동합니다 :slight_smile: