도메인 만료 vs 인증서 만료, 더 위험한 쪽
인증서 만료는 요란하다. 브라우저가 전면 경고를 띄우고, 전화가 울리고, 30분쯤 소란 끝에 재발급으로 끝난다. 도메인 만료는 다르다 — 조용히 진행되다가, 어느 선을 넘으면 돌이킬 수 없다.
복구 관점에서 비교
| 인증서 만료 | 도메인 만료 | |
|---|---|---|
| 증상 | 브라우저 경고 (서비스는 살아 있음) | DNS 자체가 죽음 — 웹·메일·API 전부 |
| 즉시 복구 | 재발급 몇 분~몇 시간 | 갱신하면 복구되나 DNS 캐시·파킹 전파로 수 시간~수일 |
| 최악 시나리오 | 없음 (재발급은 언제나 가능) | 경매·제3자 선점 — 영구 상실 |
| 부수 피해 | 신뢰도 하락 | 그 도메인 메일로 가입된 모든 계정의 비밀번호 리셋 탈취 가능 |
마지막 줄이 도메인 만료의 진짜 무서움이다. 도메인을 잃으면 @example.com 메일이
남의 것이 된다. 그 메일로 가입된 AWS·GitHub·레지스트라 계정의 “비밀번호 재설정”
이 전부 그쪽으로 간다. 인증서 만료는 장애지만, 도메인 상실은 침해다.
도메인 만료의 실제 타임라인
만료일에 바로 뺏기는 건 아니다. 대부분의 gTLD(.com 등)는 이렇게 흘러간다:
- 만료일 — DNS 가 멈추거나 파킹 페이지로 바뀜. 이때 알아채면 다행
- 유예기간(Renewal Grace) — 보통 0~45일, 레지스트라 재량. 정상 가격으로 갱신 가능
- 상환기간(Redemption Grace) — 30일. 갱신은 되지만 상환 수수료(보통 $70~200)가 붙음
- 삭제 대기(Pending Delete) — 5일. 이젠 아무도 못 살림
- 일반 풀 방출 or 경매 — 가치 있는 도메인은 드롭캐처가 초 단위로 선점
.kr 은 단계가 다르고(만료 후 말소 절차), ccTLD 마다 제각각이다 — 유예를 며칠만 주는 TLD 도 있다. “만료돼도 한 달은 여유 있겠지”는 TLD 를 확인하기 전엔 도박이다.
그런데 왜 도메인 만료 감시가 더 어려운가
인증서는 감시가 쉽다. 443 에 접속하면 만료일이 나온다 — openssl 한 줄이면 된다. 도메인은:
- WHOIS/RDAP 로 물어야 하는데, TLD 마다 서버가 다르고 응답 포맷도 제각각
- WHOIS 에는 레이트리밋이 있어 도메인 수십 개를 매일 돌리면 차단당한다
- ccTLD 는 파편화가 심하다 — .kr 은 RDAP(rdap.nic.or.kr)로 만료일이 나오지만, RDAP 미지원이거나 만료일을 감추는 ccTLD 도 여전히 많다
- 자동갱신 켜뒀다고 안심하는데, 결제 카드 만료가 자동갱신을 조용히 죽인다 — 도메인 만료 사고의 실제 1위 원인이다
그래서 도메인 만료는 “확인하는 방법을 아는 것”과 “꾸준히 확인되고 있는 것”의 간극이 인증서보다 훨씬 크다.
최소 방어선
1. 자동갱신 + 결제수단 이중화 — 자동갱신 ON 은 기본, 카드 만료일이 도메인 만료일보다 먼저 오는지 확인. 레지스트라에 보조 결제수단을 등록할 수 있으면 등록.
2. 만료일보다 훨씬 이른 알람 — 도메인은 상환 수수료·경매 리스크 때문에 60~90일 전 알람이 정상이다. RDAP 로 확인:
# gTLD 는 RDAP 표준 — 만료일(eventAction: expiration)
curl -sL https://rdap.org/domain/example.com \
| python3 -c "import json,sys;[print(e['eventDate']) for e in json.load(sys.stdin)['events'] if e['eventAction']=='expiration']"
3. 레지스트라 계정 자체를 지킬 것 — 도메인은 훔치는 것보다 계정을 뚫는 게 쉽다. 레지스트라 2FA 는 선택이 아니고, 이전 잠금(transfer lock)은 켜둔다.
4. 인증서와 도메인을 같은 대시보드에서 — 둘은 결국 “이 서비스가 언제 죽는가”라는 같은 질문이다. 인증서는 진단 툴로 지금 확인할 수 있고, 도메인 만료까지 묶은 감시는 지금 만들고 있는 것 — 툴 페이지에 이메일을 남기면 된다.
인증서 만료는 부끄러운 사고고, 도메인 만료는 회사가 흔들리는 사고다. 감시 우선순위를 정해야 한다면 도메인이 먼저다.