CAA 레코드 빌더 (DNS 인증 기관 권한 제한)
CAA (Certificate Authority Authorization) DNS 레코드 생성 — 신뢰하는 CA만 도메인의 TLS 인증서를 발급할 수 있도록 제한.
레코드
흔한 CA 추가 (issue 레코드로)
BIND 존 포맷
example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issuewild "letsencrypt.org"
example.com. IN CAA 0 iodef "mailto:security@example.com"태그 / 값 행
플래그·태그·값을 따로 묻는 DNS 컨트롤 패널용. 포맷: flags tag value
0 issue "letsencrypt.org"
0 issuewild "letsencrypt.org"
0 iodef "mailto:security@example.com"CAA 레코드에 대해
CAA는 Certificate Authority Authorization(RFC 8659)의 약자로, 공인 CA가 이 도메인의 인증서를 발급해도 되는지 알려 주는 DNS 레코드입니다. CA는 발급할 때마다 CAA를 확인하고, 자신이 목록에 없으면 발급을 거부해야 합니다. 이 도구는 두 가지 형식으로 출력합니다. 존 파일에 바로 붙여 넣을 수 있게 이스케이프까지 마친 BIND 문법과, 컨트롤 패널(Cloudflare, Route53 등)에 입력할 flags / tag / value 표입니다. issue나 issuewild 레코드의 값을 ";" 하나로 두면 모든 CA의 발급을 막습니다. 지금 TLS를 쓰지 않는다면 든든한 기본값입니다. CAA는 계층적이라, apex의 레코드는 하위에 더 구체적인 CAA 세트가 없는 한 모든 서브도메인에 적용됩니다. CA 쪽 캐싱 때문에 레코드가 완전히 반영되기까지 최대 8시간이 걸립니다.
사용법
- 도메인 (apex 또는 서브도메인) 입력. CAA는 잎에서 위로 확인되므로 apex에 설정하면 보통 전부 커버.
- 흔한 CA 버튼을 눌러 시작용
issue레코드 추가. 태그·값·critical 플래그를 필요에 맞게 편집. - 와일드카드 인증서를 발급할 거면
issuewild레코드 추가. 안 할 거면 생략 —issue만으로는 와일드카드를 커버 안 함. - CA가 정책 위반을 통지할 수 있도록 mailto:/https: 주소의
iodef레코드 추가. - BIND 출력을 존 파일에 붙여넣으세요 (컨트롤 패널이 tag·value를 따로 물으면 행 포맷 사용).
자세한 설명
펼치기접기
CAA 레코드 (RFC 8659, 이전 6844)는 DNS TXT 류의 레코드로, 공인 인증 기관에 어떤 CA가 본 도메인에 인증서를 발급할 수 있는지 알려줍니다. CA/Browser Forum Baseline Requirements에 따라 모든 CA는 발급 직전에 CAA를 확인해야 하며, 레코드가 존재하는데 자신이 목록에 없으면 거절합니다. 작지만 강력한 무단·오설정 인증서 발급 방어책이고, 무료입니다. 세 가지 태그: issue 는 일반 인증서 발급 권한, issuewild 는 와일드카드 인증서 발급 권한 (없으면 issue와 동일), iodef 는 사고 보고용 연락처 (mailto:/https:). 각 레코드에 플래그 바이트가 있고, critical 비트 (128)를 켜면 CA가 연관 파라미터를 이해 못 할 때 거절. 이 도구는 레코드를 만들어 두 가지 포맷으로 출력: 전체 BIND 존 파일 문법 (마스터 존에 붙여넣기), tag/value 분리 행 (그렇게 묻는 컨트롤 패널용). 흔한 CA 목록으로 Let's Encrypt, DigiCert, Sectigo, Google, Amazon 등을 한 번에 추가. 특수 값 ; 은 '모든 CA 거부' — 현재 인증서가 필요 없을 때 강력한 정책.
자주 묻는 질문
CAA 레코드는 어디에 호스팅하나요?
보호하려는 같은 도메인. CAA 조회는 요청 이름에서 apex까지 위로 올라갑니다 — api.example.com 인증서 요청은 api.example.com, 그 다음 example.com, 그 다음 루트 순으로 조회. 대부분 apex 한 곳에 CAA 세트 하나만 두고 모든 서브도메인을 커버합니다. 서브도메인별 CAA는 거기서 다른 정책을 원할 때만 필요.
issue letsencrypt.org 가 다른 CA의 와일드카드 발급도 막나요?
네 — issue 레코드가 있고 issuewild 레코드가 없으면 issue 가 와일드카드도 제한합니다. 그러나 issuewild 레코드가 하나라도 있으면 와일드카드에 대해 그게 우선. 가장 안전한 패턴은 일반·와일드카드 모두 원할 때 둘 다 명시하거나, 와일드카드가 절대 필요 없으면 issue 만 추가. 일반은 허용하면서 와일드카드는 거부할 때 issuewild 에 ; 추가가 일반적.
critical 플래그는 무엇?
비트 7 (값 128) 이 issuer-critical 플래그. 알 수 없는 태그에 켜져 있으면 CA는 발급을 거절해야 함. 현재는 issue, issuewild, iodef 만 정의되어 있어 critical은 주로 미래 호환성에 영향. 일반 설정에선 끄세요 (flags = 0). 모든 CA가 이해해야 한다고 명시적으로 지정할 태그에만 128 사용.
CA가 새 CAA 레코드를 얼마나 빨리 반영하나요?
Baseline Requirements에 따르면 CA는 발급 시점에 CAA를 확인하고, 이전 값의 캐시 TTL은 최대 8 시간. 그래서 새 레코드가 모든 CA에 완전히 적용되는 데 최대 8 시간. 초기 설정 시 캐시된 음성 값이 발급을 막지 않도록 TTL을 5-60 분으로 두고 나중에 늘리세요.
DNSSEC가 CAA에 영향?
존이 DNSSEC 서명되어 있으면 CA는 서명을 검증해야 하고, 서명되지 않은 응답을 누락으로 취급. 잘못 설정된 DNSSEC가 CAA 검사를 깨뜨려 인증서 갱신을 막을 수 있습니다. CAA 강제에 의존하기 전에 dnsviz.net 같은 도구로 존을 검증하세요.
관련 도구
TLSA 레코드 생성기 (DANE)와 검사기
인증서를 TLSA 레코드로 바꿉니다. 셀렉터와 매칭 종류 전부를 보여 주고, 이미 게시한 레코드가 지금 서비스하는 인증서와 맞는지 확인합니다.
네트워크
DNS 레코드 참조
DNS 레코드 타입 검색 가능한 치트시트 — A·AAAA·CNAME·MX·TXT·NS·SOA·PTR·SRV·CAA·DNSSEC·SVCB / HTTPS — 예시 포함.
네트워크
SVCB / HTTPS 레코드 생성·해독기
SVCB·HTTPS 레코드를 정규화·인코딩·검사합니다. SvcParams 해독, 와이어 바이트 분해, 그리고 위반한 RFC 9460 조항을 이름으로 지적합니다.
네트워크
TXT 레코드 분할기 (255바이트 청크)
긴 SPF·DKIM·DMARC TXT 레코드를 DNS 프로토콜이 요구하는 255바이트 청크로 분할 — BIND·일반 zone 파일·Cloudflare·Route 53 문법 출력.
네트워크
SSL 인증서 디코더 (X.509 / PEM)
PEM 인증서를 붙여넣으면 주체, 발급자, 만료일, SAN, 키, 지문, 확장을 브라우저에서 바로 읽어줍니다.
네트워크
DKIM 레코드 빌더 & 파서
DKIM DNS TXT 레코드를 만들거나 분석 — 공개키와 selector·키 타입·해시·플래그를 넣으면 전체 레코드와 255자 초과용 청크 버전까지 나옵니다.
네트워크