OneWebDesk

CAA 레코드 확인

도메인의 CAA 레코드로 인증서 발급 허용 기관을 확인합니다.

CAA(Certification Authority Authorization) 레코드 조회는 도메인이 어떤 인증기관(CA)에게만 인증서 발급을 허용하는지를 실시간으로 확인하는 도구입니다. 도메인만 입력하면 공개 DNS에 설정된 CAA 규칙(issue·issuewild·iodef)을 읽어와 허용된 CA 목록과 플래그를 표로 보여줍니다.

CAA는 잘못된 발급(mis-issuance)을 막는 마지막 안전장치입니다. 레코드가 없으면 모든 CA가 발급할 수 있고, 레코드가 있으면 명시된 CA만 발급할 수 있습니다. 인증서 발급이 갑자기 거부될 때 가장 먼저 확인해야 할 항목이기도 합니다. 결과는 잠시 캐싱되어 빠르게 응답합니다.

CAA는 어떻게 동작하나

CA는 인증서를 발급하기 전, 발급 대상 도메인(과 상위 도메인)의 CAA 레코드를 조회하도록 의무화되어 있습니다. 자신이 그 도메인의 허용 목록에 없으면 발급을 거부합니다. 즉 CAA는 DNS 한 줄로 "이 도메인 인증서는 지정한 CA에서만 받겠다"고 선언하는 방식입니다.

  • issue: 일반(비-와일드카드) 인증서를 발급할 수 있는 CA를 지정
  • issuewild: 와일드카드(*.example.com) 인증서 전용 발급 허용 CA
  • iodef: 정책 위반 시 CA가 신고할 연락처(mailto: 또는 URL)
  • flag: 128이면 critical — 이해 못 하는 CA는 발급을 거부해야 함

Let's Encrypt 예시

Let's Encrypt만 발급을 허용하려면 다음과 같이 설정합니다. issue ";"처럼 값에 세미콜론만 넣으면 모든 CA의 발급을 막는 의미가 됩니다.

  • example.com. CAA 0 issue "letsencrypt.org"
  • example.com. CAA 0 issuewild "letsencrypt.org"
  • example.com. CAA 0 iodef "mailto:security@example.com"

설정 시 주의할 점

CAA는 가장 가까운 상위에 정의된 레코드를 따릅니다(서브도메인에 없으면 부모로 올라감). 새 CA로 전환하거나 자동 갱신을 쓰는 경우, 그 CA가 목록에 빠져 있으면 발급이 조용히 실패합니다. 멀티 CA 구성에서는 사용하는 모든 CA를 issue 줄에 함께 넣어야 합니다. 발급된 인증서가 실제로 어떤 CA에서 나왔는지는 SSL 인증서 검사기로, 같은 도메인의 다른 DNS 레코드는 DNS 레코드 조회로 확인할 수 있습니다.

자주 묻는 질문

CAA 레코드가 없으면 위험한가요?
위험하다기보다 제한이 없는 상태입니다. CAA가 없으면 어떤 CA든 발급할 수 있습니다. 보안을 강화하려면 사용하는 CA만 명시하는 것이 좋습니다.
CAA를 설정하면 기존 인증서가 무효가 되나요?
아니요. CAA는 신규 발급/갱신 시점에만 검사합니다. 이미 발급된 인증서에는 영향을 주지 않습니다. 다만 다음 갱신 때 해당 CA가 목록에 없으면 갱신이 실패할 수 있습니다.
어떤 CA 이름을 적어야 하나요?
CA가 공개한 CAA 식별 도메인을 사용합니다. 예: Let's Encrypt는 letsencrypt.org, DigiCert는 digicert.com입니다. 각 CA 문서에서 정확한 값을 확인하세요.
입력한 도메인은 외부로 전송되나요?
도메인 이름만 신뢰할 수 있는 공개 DNS 리졸버에 DNS over HTTPS로 질의합니다. 이름 외 다른 데이터는 전송하지 않으며, 조회 결과는 60초간 캐싱됩니다.

관련 도구