Let's Encrypt 인증서 시스템 변경 후 Facebook 로그인에 비준수 플래그가 표시되었습니다

2021년 9월 30일경(제가 파악한 바로는)부터 제 사이트에서 인증서 오류가 발생하고 있습니다.

your connection is not private
NET::ERR_CERT_COMMON_NAME_INVALID’ 보안 경고.

이 서버는 www.nzarchitecture.net.nz 임을 증명하지 못했습니다. 해당 보안 인증서는 nzarchitecture.net.nz 에서 발급되었습니다. 이는 잘못된 설정이나 공격자가 연결을 가로채고 있기 때문일 수 있습니다.

이 문제는 해당 날짜에 적용된 Let’s Encrypt의 변경 사항과 관련이 있을 수 있습니다.
이 문제는 URL https://www.nzarchitecture.net.nz 을 사용할 때 발생하지만, https://nzarchitecture.net.nz 을 사용할 때는 발생하지 않습니다.

2.8.0 beta 7로 업데이트하고 전체 재빌드를 수행한 후에도 문제가 지속되고 있습니다.

랜딩 페이지에 오류 메시지가 표시되는 결과로, 사이트가 더 이상 Facebook의 요구 사항을 충족하지 못한다고 표시되어 Facebook 로그인 기능이 Facebook 측에서 비활성화되었습니다.

이것은 그들이 수정해야 할 Facebook의 문제입니다.

인증서는 100% 유효합니다.

그것은 다음과 유사해 보입니다…
https://meta.discourse.org/t/configuring-google-login-for-discourse/15858/239

문제는, 내가 URL에 'www’를 포함해서 브라우저에 붙여넣기나 입력할 때도 이러한 오류가 발생한다는 점입니다. 따라서 실제 위험이 없음에도 불구하고, Facebook의 규정 준수 문제와 무관하게 사용자들이 불안한 경고 메시지를 받게 됩니다.

한편 Facebook은 오류가 사라질 때까지 해당 문제를 검토하기를 거부하고 있습니다.

설정 파일

/var/discourse/containers/app.yml

에서 DISCOURSE_HOSTNAME: 값은 무엇으로 설정되어 있나요?

실제 웹사이트가 non-www 도메인에 있다면, Facebook 시스템에 non-www 도메인을 등록해야 합니다. 두 도메인을 혼용할 수 없습니다.

app.yml에 표시되는 내용

DISCOURSE_HOSTNAME: nzarchitecture.net.nz

좋아요, 그건 말이 되는 것 같네요. 하지만 DNS 관점에서는 둘 중 하나가 다른 하나의 별명(alias)이잖아요(적어도 저는 그렇게 생각했거든요). 게다가 'www’를 사용할 수 없다는 것을 일반 사용자에게 설명하기는 어려울 텐데, 특히 그런 경고 메시지를 보려면 로그인을 해야 하는 경우에는 더욱 그렇습니다…

이것은 정확히 말하면 "별명(alias)"이 아니라 리다이렉트입니다. 리다이렉트를 올바르게 설정하려면 리다이렉트가 존재하는 도메인에 대한 인증서가 설치되어 있어야 합니다.

예를 들어, 파트너사인 communiteq는 https://www.forcewww.com/에서 해당 서비스를 제공합니다.

최근까지 이 문제는 전혀 없었습니다 - Facebook 경고도 없었고, www가 있든 없든 인증서 경고도 없었거든요.

기본 무료 Let’s Encrypt 인증서로 두 옵션(www 포함 및 미포함) 모두를 인증할 수 있는 방법이 있을까요? 관리해야 할 추가 인증서나 추가 비용으로 복잡하게 만들고 싶지 않습니다.

사이트로 연결되는 링크에 www가 포함된 이메일이 많이 돌아다니고 있습니다.

'리디렉션이 존재하는 위치’라고 하셨을 때, 이 경우 Digital Ocean을 의미하시나요? (제 호스팅 제공업체이자 DNS 설정을 관리하는 곳)

app.yml에 한두 줄만 추가하면 됩니다. 문제가 있을 때 이 방법으로 해결되었습니다:

감사합니다 - 그 방법이 유망해 보입니다.

제 경우, https://nzarchitecture.net이 기본 도메인이라면, 아래처럼 추가하는 것이 올바른가요?

after_ssl:
- replace:
filename: “/etc/runit/1.d/letsencrypt”
from: /–keylength/
to: “-d www.nzarchitecture.net.nz --keylength”

이 변경 사항을 적용하려면 Discourse를 다시 빌드해야 하나요?

내용은 맞지만 yml 파일에서는 들여쓰기가 중요하므로 이를 수정해야 합니다:

  after_ssl:
    - replace:
        filename: “/etc/runit/1.d/letsencrypt”
        from: /--keylength/
        to: “-d www.nzarchitecture.net.nz --keylength”

변경 사항을 적용하려면 다시 빌드해야 합니다.

수정: 사실 --keylength 사용이 -k로 대체된 것 같으므로, 다음 내용을 사용해야 합니다:
죄송합니다. Github 검색에서 모르게 오래된 포크를 찾게 되었습니다. --keylength가 올바른 옵션입니다.

정말 훌륭합니다! @Simon_Manning 님과 여러분 모두에게 감사드립니다. app.yml을 통한 리다이렉트가 아주 잘 작동했습니다.