제 SSL은 www.domain.com에는 유효하지 않지만 domain.com에는 유효합니다.
www를 포함해 보안 설정을 하려면 어떻게 해야 하나요? 저는 자체 호스팅 시 Discourse에서 제공하는 무료 SSL을 사용하고 있습니다.
제 SSL은 www.domain.com에는 유효하지 않지만 domain.com에는 유효합니다.
www를 포함해 보안 설정을 하려면 어떻게 해야 하나요? 저는 자체 호스팅 시 Discourse에서 제공하는 무료 SSL을 사용하고 있습니다.
안 돼.
Lets Encrypt도 무료이니까 ![]()
네, 무료라는 건 알고 있어요. 그런데 www를 암호화하는 방법이 있을까요?
도메인을 domain.com으로 직접 연결해야 하는데, www를 통해 접속하면 “이 사이트은 안전하지 않습니다”라는 경고가 뜨거든요.
아마도 Apex 전용으로 생성되었거나, 종료를 시도하는 위치에서 참조하는 방식이 잘못되었기 때문일 수 있습니다.
디스코urses는 설치 시 SSL을 생성합니다. 그리고 Let’s Encrypt를 사용합니다. 따라서 이제 그 SSL을 제공한 회사에 문의하는 것이 좋을 수도 있습니다.
왜 그렇게 해야 하는지 완전히 이해가 되지 않습니다.
www.mysite.com을 방문할 때 "이 사이트는 안전하지 않습니다. 계속하시겠습니까?"라는 메시지가 표시되고, 이후 SSL 버전(https)으로 리디렉션되기 때문입니다. Lets Encrypt에 이에 대한 해결책을 문의해 보겠습니다.
www용으로도 생성해야 합니다.
수동으로 생성하는 경우, certbot certonly --nginx -d domain.com -d www.domain.com과 같은 명령을 사용해야 합니다. 기본적으로 각 서브도메인은 각각 별도의 인증서가 필요합니다.
현재 상황은 잘 모르겠지만, Let’s Encrypt를 사용하여 와일드카드 인증서(아펙스 도메인과 모든 서브도메인에 동일하게 적용되는 인증서)를 생성했을 때 잘 작동하지 않았습니다.
하지만 다시 한번 말씀드리지만, 걱정하지 않으셔도 됩니다. Discourse가 대신 처리해 주기 때문입니다 — DNS 설정이 잘못되었거나 포럼에 접근할 수 없는 기타 원인이 있는 경우를 제외하고는요.
정확히 이해가 안 돼서 죄송합니다. DNS는 정상적으로 작동하는 것 같고, 단순히 URL 리다이렉트 문제인 것 같습니다.
www → https://domain.com
이 부분은 다음과 같이 표시됩니다.
www.domain.com은 안전한 연결을 지원하지 않습니다.
이 사이트가 HTTPS를 지원하지 않기 때문에 이 경고가 표시됩니다.
하지만 domain.com을 사용하면 정상적으로 작동합니다.
certbot certonly --nginx -d domain.com -d www.domain.com을 시도해 봐야 할까요?
무엇을 시도해야 하는지 모르겠고, 무엇을, 어떻게, 어디서 시도하고 있는지도 전혀 알 수 없습니다.
제가 말하려는 것은 이것뿐입니다:
이 주제에 대한 게시물이 있습니다:
감사합니다.
after_ssl:
# letsencrypt에서 추가적으로 발급받을 인증서를 지정
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d site.com -d www.mysite.com --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d site.com -d www.mysite.com --fullchainpath"
이렇게 하면 www가 mysite.com으로 가나요? 아니면 그 반대인가요?
아니요. 두 개의 인증서를 제공합니다. 하나는 apex용이고, 다른 하나는 www용입니다.
호스트명이 site.com이라면 현재 설정이 올바릅니다. 그리고 실제로 그렇게 되어 있는 것 같습니다.
일반적으로 사이트는 www.site.com에 두고, 아펙스 도메인(apex domain)에서 www로 리다이렉트하는 것이 권장됩니다. 저는 호스트명을 www.site.com으로 변경하고, 방향을 반대로 설정하겠습니다.
저는 두 도메인 모두에 유효한 단일 인증서가 발급된다고 생각합니다.
안녕하세요, 어제 수정했다고 생각했는데, 지금 www.mysite.com에 접근하면 여전히 SSL이 아닌 리디렉션이 발생하여 이 글을 다시 올립니다.
에이펙스 도메인(apex domain)에는 SSL이 적용되어 있지만, www에는 적용되어 있지 않습니다.
hooks의 app.yml에 다음 내용을 적용했는데도 마찬가지입니다:
after_ssl:
# letsencrypt에서 추가적으로 발급받을 인증서를 지정
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d mysite.com -d www.mysite.com --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d mysite.com -d www.mysite.com --fullchainpath"
Set up Let’s Encrypt with multiple domains / redirects 의 지침을 따르고 계신가요?
OP의 템플릿에 www.mysite.com을 넣으면 다음과 같은 결과가 생성됩니다:
after_ssl:
# tell letsencrypt what additional certs to get
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d www.mysite.com --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d www.mysite.com --fullchainpath"
global: true
즉, 잘못 수행하고 계신 것입니다.
아, 그래서 이건 수동으로 입력하는 게 아니군요.
after_ssl:
# letsencrypt에 추가적으로 발급받을 인증서에 대해 알려줍니다
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d =domain2= --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d =domain2= --fullchainpath"
global: true
그러면 제가 이 작업을 수행하고 domain2를 mysite.com으로 대체한 뒤 앱을 다시 빌드해야 하나요?
안녕하세요, 방금 이 작업을 수행했는데 안타깝게도 동일한 결과가 나옵니다. 제 도메인으로 아래처럼 변경했습니다.
공백 없이, 올바른 형식으로 작성했습니다.
after_ssl:
# letsencrypt에 추가적으로 발급할 인증서를 지정
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d =mysite.com= --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d =mysite.com= --fullchainpath"
global: true
해결되지 않은 것으로 확인되어 해결됨 체크박스를 해제했습니다.
다른 스탠사로 여러 번 재빌드를 수행했다면, 레이트 리밋(rate limit)에 걸렸을 수 있습니다.
템플릿이 다시 변경되어 더 이상 작동하지 않을 가능성이 있지만, 그렇게 보지는 않습니다.
레이트 리밋을 해결하는 방법은 일주일간 기다리거나 서브도메인을 하나 더 추가하는 것입니다.
컨테이너 내부에 들어가서 명령어를 실행하여 URL을 요청하고 에러 내용을 확인할 수 있지만, 어떤 명령어인지 기억이 나지 않습니다. 다음을 확인하면 에러를 볼 수 있을 수도 있습니다.
docker logs app
아, 찾았어요!
Cannot issue for \"=mysite.com=\": Domain name contains an invalid character
변수를 위한 것이었으니 =를 제거해야 하나요?
제가 제안했듯이 다른 페이지의 양식을 사용하고 빈칸에 호스트 이름을 입력하셨나요?