View a markdown version of this page

ACME 인증서 자동화 문제 해결 - AWS 인증서 관리자

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

ACME 인증서 자동화 문제 해결

이 섹션에서는 ACME 인증서 자동화와 관련된 일반적인 문제와 이를 해결하는 방법을 설명합니다.

콘솔 모니터링 탭에 ACME 실패가 표시되지 않음

ACM 콘솔의 ACME 엔드포인트 세부 정보 페이지에 있는 모니터링 탭에는 ACM이 인증서를 생성할 때 인증서 발급의 마지막 단계에 대한 이벤트가 표시됩니다( 참조ACME 엔드포인트 모니터링). 해당 단계 전에 요청이 실패하면 요청이 여기에 표시되지 않습니다.

잘못된 자격 증명, 검증되지 않은 도메인 또는 엔드포인트가 허용하지 않는 도메인과 같은 일부 실패는 프로세스 초기에 발생합니다. ACME 클라이언트는 이러한 실패를 직접 수신합니다.

이러한 실패를 진단하려면 다음 옵션 중 하나를 사용합니다.

  • ACME 클라이언트 로그 확인 - ACME 클라이언트는 서버가 반환하는 정확한 오류를 기록합니다. 로그 파일의 위치는 클라이언트 설명서를 참조하세요.

  • CloudTrail 데이터 이벤트 활성화 - 디버깅 또는 감사를 위해 AWS 계정의 모든 ACME 활동을 중앙에서 보려면 ACM ACME 엔드포인트에 대한 CloudTrail 데이터 이벤트 로깅을 활성화합니다. 이러한 이벤트에 대한 자세한 내용은 섹션을 참조하세요데이터 이벤트.

도메인 검증이 유효하지 않음

ACME 엔드포인트는 도메인의 유효성 검사가 VALID 상태에 도달한 후에만 도메인에 대한 인증서를 발급할 수 있습니다. 도메인 검증이에 유지VALIDATING되거나이 되는 경우 다음을 INVALID확인합니다.

  • 레코드 이름과 값을 모두 포함하여 도메인 검증 세부 정보에 표시된 대로 CNAME 레코드를 정확히 프로비저닝했는지 확인합니다. 필요한 레코드를 보려면 DescribeAcmeDomainValidation 또는 ACM 콘솔을 사용합니다.

  • 자동 레코드 관리를 위해 Route 53 호스팅 영역을 제공한 경우 호스팅 영역 ID가 올바르고 ACM이 액세스할 수 있는지 확인합니다.

DescribeAcmeDomainValidation는 원인을 나타내는 실패 이유를 보고합니다.

  • ACCESS_DENIED: ACM이 호스팅 영역에 액세스하여 레코드를 확인하거나 생성할 수 없습니다.

  • DOMAIN_MISMATCH: CNAME 레코드가 예상 값과 일치하지 않습니다.

  • HOSTED_ZONE_NOT_FOUND: 지정된 호스팅 영역을 찾을 수 없습니다.

  • TIMED_OUT: 허용된 시간 내에 레코드가 감지되지 않았습니다. 레코드가 DNS에 전파되었는지 확인합니다.

  • INTERNAL_FAILURE: 내부 오류가 발생했습니다. 다시 시도하고 문제가 지속되면 AWS Support에 문의하세요.

자세한 내용은 ACME 도메인 검증 단원을 참조하십시오.

액세스가 거부된 상태에서 인증서 발급 또는 취소 실패

ACM은 클라이언트의 외부 계정 바인딩(EAB)과 연결된 IAM 역할을 사용하여 발급 및 해지를 승인합니다. 액세스 거부 오류와 함께 이러한 작업이 실패하면 다음을 확인합니다.

  • 역할의 신뢰 정책은 ACME 서비스 보안 주체(acm-acme.amazonaws.com)가 sts:AssumeRole, sts:TagSession및를 수행하도록 허용합니다sts:SetSourceIdentity. sts:SourceIdentity 또는 sts:RoleSessionName 조건을 추가한 경우 ACM이 사용하는 값을 허용하는지 확인합니다.

  • 역할은 발급 또는 취소acm:RequestCertificate를 위해 acm:RevokeCertificate를 부여합니다.

  • No AWS Organizations 서비스 제어 정책(SCP)은 작업을 거부합니다. SCPs 발급 시 적용됩니다.

자세한 내용은 ACME 인증서 자동화를 위한 IAM 단원을 참조하십시오.

인증서 요청이 거부됨

ACME 클라이언트의 인증서 요청이 거부되면 다음을 확인합니다.

  • 요청된 도메인은 엔드포인트의 VALID 상태인 도메인 검증의 적용을 받으며 검증의 범위(정확한 도메인, 하위 도메인 또는 와일드카드)는 요청된 이름을 허용합니다. 자세한 내용은 도메인 검증 범위 단원을 참조하십시오.

  • 인증서의 키 알고리즘은 엔드포인트에서 허용되는 키 알고리즘 중 하나입니다. 자세한 내용은 엔드포인트 구성 단원을 참조하십시오.

도메인 검증이 이전에 유효한 후 DNS CNAME 오류와 함께 인증서 발급 실패

ACME 도메인 검증을 수행하려면 검증이 사용 중인 동안 CNAME 레코드가 DNS에 남아 있어야 합니다. 도메인 검증이 VALID 상태에 도달한 후 CNAME이 제거되면 도메인 검증 리소스 자체가 이전에 확인되었더라도 발급 시 해당 도메인에 대한 인증서 주문이 실패할 수 있습니다.

이 경우 ACME 클라이언트는 주문이 invalid 상태로 전환되는 것을 볼 수 있으며 주문의 error 필드에는 해결할 수 없는 CNAME 레코드의 이름이 detail typeurn:ietf:params:acme:error:dns인이 포함됩니다. 예제:

{ "status": "invalid", "error": { "type": "urn:ietf:params:acme:error:dns", "detail": "DNS CNAME records not found: [_a1b2c3d4e5f67890abcdef1234567890.example.com.]" }, "identifiers": [{ "type": "dns", "value": "example.com" }], "authorizations": ["https://acm-acme-enroll.region.api.aws/00000000-0000-0000-0000-000000000000/authz/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"], "finalize": "https://acm-acme-enroll.region.api.aws/00000000-0000-0000-0000-000000000000/order/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222/finalize", "expires": "2026-06-18T13:49:02Z" }

ACME 클라이언트는 자체 출력에 주문 오류를 표시합니다. 예를 들어 Certbot은 다음 오류와 함께 종료됩니다.

An unexpected error occurred: DNS CNAME records not found: [_a1b2c3d4e5f67890abcdef1234567890.example.com.]

ACM 데이터 이벤트를 기록하도록 CloudTrail 추적 또는 이벤트 데이터 스토어를 구성한 경우 실패는 errorTypeserviceEventDetails와 동일한의 IssueCertificate CloudTrail 이벤트에도 표시됩니다errorMessage. 자세한 내용은 CloudTrail 로깅에서 지원되는 ACM API 작업 단원을 참조하십시오.

문제를 해결하려면 오류에 나열된 CNAME 레코드를 복원합니다. 도메인 검증에 필요한 CNAME을 찾으려면 ACM 콘솔에서 도메인 검증을 DescribeAcmeDomainValidation 사용하거나 확인합니다.

계정 등록 실패

ACME 클라이언트가 엔드포인트에 계정을 등록할 때 다음을 확인합니다.

  • 클라이언트는 등록 중에 외부 계정 바인딩(EAB) 자격 증명(키 식별자 및 HMAC 키)을 제공합니다. 엔드포인트에는 이러한 자격 증명이 필요합니다.

  • 엔드포인트에 연락처 정보가 필요한 경우 클라이언트는 등록 중에 연락처 이메일 주소를 제공합니다. 자세한 내용은 외부 계정 바인딩 단원을 참조하십시오.

인증서를 기다리는 ACME 클라이언트 시간 초과

ACM ACME 엔드포인트를 통한 인증서 발급에는 최대 2분이 걸릴 수 있습니다. 인증서를 받기 전에 ACME 클라이언트가 제한 시간을 초과한 경우 클라이언트의 발급 제한 시간을 최소 120초(2분)로 늘립니다.

Certbot의 경우 --issuance-timeout 플래그를 사용합니다.

certbot certonly --issuance-timeout 120 ...

다른 ACME 클라이언트의 경우 클라이언트의 설명서에서 동등한 제한 시간 구성을 참조하세요.