시작은 이랬다
jdevy.com은 이미 Vercel 프로젝트에서 쓰고 있었습니다. 여기에 티스토리 블로그도 붙이고 싶어서, 처음에는 아래 그림을 그렸습니다.
jdevy.com → Vercel (기존 프로젝트)
jdevy.com/blog/ → 티스토리
결론부터 말하면 이건 안 됩니다. DNS는 경로(path)를 모릅니다. CNAME이든 A 레코드든 호스트 이름 단위로만 라우팅이 가능하기 때문에, 하나의 도메인을 두 개의 다른 오리진 서버로 "경로에 따라" 나눠 보내는 건 DNS 레벨에서 원천적으로 불가능합니다. (리버스 프록시를 억지로 붙이는 방법이 이론적으로 없는 건 아니지만, 티스토리는 등록한 도메인 1개에만 SSL 인증서를 발급해주는 구조라 안정적으로 운영하기 어렵습니다.)
그래서 서브도메인으로 방향을 틀었습니다.
jdevy.com → Vercel (그대로 유지)
blog.jdevy.com → 티스토리

Cloudflare에 CNAME 추가
DNS 레코드는 간단합니다.
이름 형식 대상
| blog | CNAME | host.tistory.io |
여기까지는 문제없었습니다. 그런데 티스토리 관리 화면에서 blog.jdevy.com을 개인 도메인으로 저장하려는 순간—
도메인 설정 정보를 찾을 수 없습니다. 도메인 제공 서비스에서 확인해보시기 바랍니다.
레코드는 분명히 만들었는데 왜 못 찾는지 확인이 필요했습니다.
원인: Cloudflare 프록시가 켜져 있었다
DNS 조회로 blog.jdevy.com을 확인해보니 원인이 나왔습니다.
blog.jdevy.com → 2606:4700:3035::6815:5d7e (Cloudflare Anycast IP)
host.tistory.io가 아니라 Cloudflare의 프록시 IP가 그대로 노출되고 있었습니다. Cloudflare DNS 레코드에는 "프록시 상태" 토글이 있는데, 기본값이 켜짐(주황 구름, Proxied)입니다. 이 상태에서는 실제 CNAME 대상(host.tistory.io)이 외부에 보이지 않고 Cloudflare 서버 IP만 응답합니다.
티스토리 입장에서는 "이 도메인이 진짜 우리 서버로 연결돼 있는지" 확인해야 인증서를 발급하고 연결을 승인해주는데, Cloudflare가 프록시로 그 앞을 가로막고 있으니 확인이 안 되는 것이었습니다.
해결: 프록시 끄기 (DNS only)
Cloudflare 대시보드 → DNS → Records에서 blog.jdevy.com 레코드의 프록시 토글을 끄면 됩니다.
- 주황 구름(Proxied) → 회색 구름(DNS only)
이렇게 바꾸고 저장하면 CNAME 체인이 그대로 노출되고, 곧바로 티스토리에서 재확인하면 "DNS 설정 정보: 확인 완료"로 바뀝니다.
주의사항 / 흔한 실수
- 티스토리 개인 도메인은 서브디렉토리가 아니라 서브도메인 단위로만 연결 가능합니다.
- Cloudflare를 네임서버로 쓰고 있다면, 티스토리용 CNAME 레코드는 반드시 프록시를 꺼야(DNS only) 인증서 발급/도메인 확인이 정상적으로 진행됩니다.
- SSL 인증서(보안 접속 인증서)는 DNS 확인 완료 후 별도로 발급 대기 시간(수십 분~1시간)이 걸립니다. [발급 완료까지 걸린 실제 시간 확인 필요]
마무리
정리하면, 티스토리 개인 도메인은 서브디렉토리가 아니라 서브도메인 단위로만 연결됩니다. Cloudflare를 네임서버로 쓰고 있다면, 프록시가 켜져 있는 상태에서는 티스토리가 CNAME 대상을 확인할 수 없다는 점을 먼저 체크하는 게 시간을 아끼는 길입니다.
[핵심요약] 티스토리 서브도메인 연결, Cloudflare 프록시 함정 해결기
'개발자 인사이트' 카테고리의 다른 글
| AI는 대체가 아니라 역할 분담입니다 (0) | 2026.07.14 |
|---|---|
| AI 코딩 툴, 어디까지 맡기고 어디부터 직접 할까 (0) | 2026.07.13 |
| 지출 없이 시작하는 AI 자동화 부업, 실제로 해보았읍니다 (0) | 2026.07.13 |
| AI 콘텐츠 자동화, 모델보다 중요한 건 이거였습니다 (0) | 2026.07.13 |