프록시를 통한 HTTPS; Discourse가 여전히 HTTP로 파일을 가져오려 함

안녕하세요! 방금 Discourse 포럼을 설정하려고 시도했습니다. 이메일의 링크를 클릭했을 때 버튼이 보였지만, 클릭할 수 없었습니다. 파일이 HTTP를 통해 로드되려고 하기 때문에 발생하는 것으로 보이는 꽤 많은 수의 오류를 확인했습니다. 이는 Discourse 자체의 HTTPS를 사용하지 않고 대신 apache2 웹서버의 ProxyPass를 통해 HTTPS를 사용하고 있기 때문일 수 있습니다. Discourse의 HTTPS를 사용하지 않고 파일을 HTTPS로 요청하도록 하는 방법은 무엇인가요? (또는 이미 쉽게 존재하는 .crt 및 .key 파일을 Discourse와 함께 사용할 수 있는 방법을 알려주시면 좋습니다 :wink:)

Discourse에서 강제 HTTPS를 활성화했나요?

이걸 어떻게 해야 하나요? (LetsEncrypt나 Discourse를 통한 SSL 없이)
templates/web.ssl.template.yml 주석을 해제하고 templates/web.letsencrypt.ssl.template.yml은 그대로 주석 처리해 두면 되는 건가요? (죄송하지만, 재빌드하는 데 시간이 오래 걸려서 확실하게 하고 싶습니다.)

설정 화면으로 가서 'force https’라고 적힌 체크박스를 활성화하기만 하면 됩니다.

명확히 하기 위해 말씀드리자면, 해당 설정을 활성화하기 전에 리버스 프록시가 Discourse에 대해 SSL을 처리할 수 있는지 100% 확인하시기 바랍니다.

:warning: Discourse는 apache2와 호환되지 않습니다… 가능하다면 nginx로 전환하시기 바랍니다.

잠깐, 설정이 뭐? 도대체 체크박스가 어디에 있단 말이야?

community.example.net/admin은 Discourse 관리자 패널을 찾을 수 있는 경로입니다.

하지만 그러려면 먼저 포럼에 계정이 필요한데, HTTPS 문제를 해결하지 않으면 계정을 만들 수 없어요.

콘솔을 통해 강제 SSL을 활성화할 수 있습니다:

./launcher enter app
rails c
SiteSetting.force_https = true
exit
exit

그 후 다시 빌드하거나 다른 작업을 해야 하나요?
수정: 다시 빌드했습니다. 그래도 일부 파일이 여전히 HTTP를 통해 로드된다는 동일한 오류가 나네요.

force_https는 혼란을 더 많이 유발하여 관리자 UI에서 제거되었습니다.

Discourse는 이제 기본적으로 https를 설치하므로, 이러한 경우에만 수동으로 활성화해야 합니다.

저에게는 기본적으로 활성화되어 있지 않았습니다. 설치 스크립트를 사용하는 데 문제가 있어서 app.yml 파일을 직접 수정했습니다. 이것이 원인이 될 수 있을까요?

HTTPS 템플릿을 비활성화하여 프록시 뒤에 HTTP를 실행하고 있나요?

저에게는 두 개의 HTTPS 템플릿이 기본적으로 비활성화되어 있었습니다.
Discourse는 서버 2의 두 개의 기본 포트에서 실행되고 있습니다.
그 후 SSL이 구성된 apache2(서버 1에서 실행 중)의 VHost에서 ProxyPass를 사용하고 있습니다.
방금 Discourse를 통해 HTTPS를 활성화할 수 있다는 것을 알게 되었습니다. Discourse가 기본 포트에서 실행되고 있으므로, 서버 2의 IP에 community.website.tld를 지정하면 됩니다.
SSL을 활성화하려면 어떻게 해야 하나요? 두 템플릿의 주석 처리를 해제하고 Let’s Encrypt 이메일을 입력하면 되나요? 또한, Let’s Encrypt 계정을 어떻게 생성하나요? 웹사이트에서 “가입” 버튼을 찾을 수 없습니다.

대략 그런 내용입니다. HTTPS 템플릿과 Let’s Encrypt를 활성화하고, 포트 443이 외부로 노출되도록 확인한 후 재구축 전에 이메일 주소를 지정하세요.

Discourse를 프록시 뒤에 두는 데에는 좋은 이유가 거의 없습니다. 전용 서버와 FQDN이 있다면, 위에서 설명한 대로 관리하기가 훨씬 쉬워집니다.

그런데 거기에 어떤 이메일 주소를 입력해야 하나요? LetsEncrypt 계정용이라고 되어 있는데, 계정을 새로 만들어야 하나요? 어디서 만들 수 있나요?

알림을 받을 이메일 주소만 입력하면 됩니다. 사전에 등록할 필요가 없습니다.

방금 SSL과 관련 설정을 모두 활성화했는데, 이제 Cloudflare 502 오류가 발생합니다.

프록시가 https로 X-Forwarded-Proto 헤더를 올바르게 설정하고 있는지 확인하세요. 그러면 https 감지 문제가 해결됩니다.

지금은 Cloudflare를 꺼두세요. 자주 공격을 받지 않는 한, Cloudflare는 도움이 되기보다 더 많은 문제를 일으킬 수 있습니다.

오렌지 클라우드가 활성화되어 있으면 Discourse가 Let’s Encrypt의 인증서를 등록할 수 없습니다.

해결했습니다. 이제 HTTPS가 정상적으로 작동하며 모든 콘텐츠가 HTTPS를 통해 로드되고 있습니다. 하지만:
계정 인증 페이지의 버튼을 여전히 클릭할 수 없습니다.


콘솔에도 오류와 몇 가지 경고가 표시됩니다: