요약

  • IETF가 dns-account-01 초안을 11월 10일까지 최종 의견 수렴에 부쳤다. 같은 도메인을 쓰는 ACME 계정마다 DNS 검증 이름을 따로 만드는 내용이다.
  • 여러 지역이나 클라우드가 인증서를 병렬로 발급받을 때 _acme-challenge의 단일 CNAME을 놓고 충돌하는 문제를 다룬다.

클라우드 이전에는 이상한 동거 기간이 있다. 옛 환경도 아직 방문자를 받고, 새 환경도 서비스를 시작했다. 두 곳 모두 같은 도메인의 인증서를 갱신해야 한다. 현행 ACME 표준 RFC 8555의 dns-01은 _acme-challenge에서 답을 찾는다. 각 환경이 그 이름을 자기 검증 서비스로 CNAME 위임하려면 자리가 하나뿐이다. 서버는 둘인데 초인종은 하나인 셈이다.

ACME 작업반 초안은 계정 URL로 만든 짧은 이름을 _acme-challenge 앞에 붙인다. 계정 A와 B가 각각 자기 자리의 TXT에 이번 검증 값을 올린다. ACME 서버는 서명된 요청 속 계정 식별자로 어느 DNS 이름을 조회할지 계산하고, 새 도전값에 맞는 TXT인지 확인한다. 한쪽이 갱신할 때 다른 쪽의 위임을 갈아 끼울 필요가 없다.

이름 생성 규칙은 구체적이다. 전체 계정 URL의 SHA-256 결과에서 첫 10바이트를 뽑아 Base32로 인코딩한다. 이름을 계정 키가 아니라 URL에 묶었기 때문에 통상적인 키 교체 뒤에도 주소가 유지된다. 반면 TXT에 들어갈 답은 매번 새 토큰과 계정 키에 따라 달라진다. 우편함의 위치는 고정하고 편지는 그때그때 새로 쓰는 방식이다.

운영 책임은 여기서 시작한다. 주 클라우드, 예비 지역, 이전을 돕는 업체에 각각 검증 경로를 주면 누가 어떤 계정을 승인했는지 적어 두어야 한다. 계약이 끝난 업체의 경로는 언제 지울 것인가. 인사 이동 뒤에도 DNS에 남은 긴 해시 이름의 주인을 알아볼 수 있는가. 출입증을 회수하고도 문 옆에 전용 초인종을 남겨 두면 퇴사 절차는 끝난 게 아니다.

초안은 ACME 서비스 자체의 이사도 짚는다. 계정 URL의 호스트, 경로, 프로토콜이나 포트가 바뀌면 미리 설정한 DNS 이름과 계산 결과가 달라질 수 있다. 서버는 계정 식별자를 안정적으로 유지하고, 이동이 불가피하면 이전 URL을 계속 받아들이도록 권고한다. 검증이 끝난 TXT 값은 클라이언트가 정리하도록 권한다.

IETF Datatracker에는 10월 27일 자 -04 초안과 11월 10일 의견 마감이 표시돼 있다. 절차가 끝나면 dns-account-01을 IANA의 ACME 검증 방법 목록에 올리자는 제안도 담겼다. 지금은 새 초인종의 설치 규칙을 공개 검토하는 단계다.