
마침내 문제를 일으키던 AWS EC2 Linux 인스턴스에 certbot-auto를 설치했고 Let's Encrypt에서 와일드카드 인증서를 얻으려고 합니다.
나는 (무고한 사람들을 보호하기 위해 변경된) _acme-challenge.foo.bar.net이라는 이름으로 주어진 값을 가진 TXT 레코드를 올려놓으라는 지시를 받았습니다.
그래서 Route 53 콘솔 페이지로 이동하여 bar.net 호스팅 영역을 선택합니다. _acme-challenge.foo.bar.net 레코드를 지정된 값으로 추가하고 "Save Record Set"을 클릭한 후 몇 분 정도 기다립니다. 그런 다음 이를 선택하고 "Test Record Set"을 클릭하면 Route 53에서는 해당 항목이 게시된 것으로 인식합니다.
하지만 certbot-auto에 계속 진행하라고 지시하고 Let's Encrypt가 레코드를 찾으면 레코드가 없습니다. nslookup -q=txt _acme-challenge.foo.bar.net을 수행하면 다음과 같은 결과가 나타납니다.
서버가 _acme-challenge.foo.bar.net을 찾을 수 없습니다.
nslookup -q=txt foo.bar.net의 경우 다음을 얻습니다.
서버가 foo.bar.net을 찾을 수 없습니다
그러나 foo.bar.net에서 정기적으로 nslookup을 수행하면 찾을 수 있습니다.
무슨 일이 일어나고 있나요?
답변1
문제의 원인을 찾았습니다.
NS 레코드에 등록된 서버를 대조 확인하던 중, 우연히 TXT 레코드에 있는 이름이 아닌 것을 발견했습니다.(무고한 사람을 보호하기 위해 여전히 이름이 변경되었습니다.)
_acme-challenge.foo.bar.net
하지만
_acme-challenge.foo.bar.net.bar.net
저는 Route 53 콘솔의 레코드 세트 편집기가 레코드 세트 이름을 입력하는 필드 오른쪽에 호스팅 영역의 도메인 이름을 넣은 다음 이를 입력하는 항목에 추가한다는 사실을 알아차리지 못했습니다. 그래서 전체 레코드 이름을 입력하고 ".bar.net"을 두 번, 한 번은 명시적으로, 한 번은 암시적으로 가져왔습니다.
몽고메리 스콧(Montgomery Scott)이라는 가상의 엔지니어가 처음으로 말한 문구를 만들어 보면,
배관에 대해 너무 많이 생각할수록 배수구를 막는 것이 더 쉬워집니다.