ACME(Automated Certificate Management Environment)는 인증서 발급, 검증, 갱신, 폐기를 자동화하기 위해 설계된 RFC 8555 표준 프로토콜입니다. Certificate Manager는 Advanced 인증서 제품군에서 ACME 디렉터리를 제공하여, 고객이 각자의 운영 환경에 맞춰 인증서 갱신 파이프라인을 직접 구축하고 관리 프로세스를 자동화할 수 있는 기능을 지원합니다.
ACME 도입 대상
ACME 기능은 인증서를 직접 인프라에 배포하고 갱신 프로세스를 자동화하고자 하는 고객에게 적합합니다. 인증서 만료로 인한 서비스 장애를 예방하고, 운영자의 수동 작업 없이 인증서 생명주기를 관리할 수 있습니다.
네이버 클라우드 플랫폼의 Load Balancer 또는 Global Edge에 인증서를 적용하여 운영하는 경우, ACME 기능 대신 Certificate Manager에서 제공하는 인증서 자동갱신 기능을 사용하시기 바랍니다.
ACME 주요 기능
기존에는 인증서를 발급받거나 갱신할 때 담당자가 직접 인증 기관(CA)에 신청하고, 발급된 파일을 서버에 수동으로 설치하는 과정이 필요했습니다. 이 과정에서 갱신 시점을 놓치거나 작업 중 오류가 발생하면 서비스 장애로 이어질 수 있습니다.
ACME는 이러한 수동 과정 전체를 자동화하기 위해 설계된 표준 프로토콜입니다. 클라이언트가 인증 기관과 직접 통신하여 도메인 소유권 검증부터 인증서 발급, 갱신까지를 사람의 개입 없이 처리합니다. Certbot, acme.sh, win-acme, cert-manager 등 다양한 클라이언트가 이 표준을 구현하고 있으며, 각 운영 환경에 맞는 클라이언트를 선택하여 사용할 수 있습니다.
Certificate Manager의 ACME가 제공하는 주요 기능에 대한 설명은 다음과 같습니다.
- 생명주기 관리 자동화 환경 제공: 인증서 요청부터 발급, 적용, 갱신까지의 전 과정을 각 운영 환경의 클라이언트가 자동으로 처리할 수 있도록 연동 기능을 제공합니다. 이를 통해 운영자의 수동 개입을 최소화할 수 있습니다.
- OV 인증서 지원: DV(Domain Validation)만 지원하는 일반적인 무료 ACME 서비스(예: Let's Encrypt)와 달리, 신뢰도 높은 조직 검증(OV, Organization Validation) 인증서의 자동화를 지원합니다.
- 표준 클라이언트 호환: Certbot, acme.sh, win-acme, cert-manager 등 RFC 8555 표준을 준수하는 다양한 클라이언트를 모두 지원하므로, 환경마다 제각각이었던 관리 방식을 표준화하여 운영 프로세스를 단순화합니다.
ACME 기본 동작 구조
ACME 프로토콜은 계정 등록(EAB), 도메인 소유권 검증(Challenge), 인증서 발급(Order)의 세 단계를 거쳐 동작합니다. 고객 측에서 최초 설정 및 스케줄링(예: crontab)을 구성해 두면, 이후 만료 시점에 맞춰 클라이언트가 갱신 과정을 자동으로 수행합니다.
- 계정 등록(EAB): 외부 계정 바인딩(External Account Binding) 정보를 사용하여 ACME 서버에 클라이언트를 등록하고 인증합니다.
- 도메인 소유권 검증(Challenge): DNS 레코드 등을 통해 해당 도메인에 대한 제어 권한을 증명합니다.
- 인증서 발급 및 갱신(Order): 검증이 완료되면 인증서를 발급받으며, 이후 설정된 주기에 따라 클라이언트가 갱신 과정을 반복합니다.
ACME 서비스 사양
ACME 서비스 사양에 대한 설명은 다음과 같습니다.
| 항목 | 사양 |
|---|---|
| 인증서 유형 | Advanced DV, Advanced OV |
| 검증 방식 | DNS-01 챌린지 (동적 방식 및 사전 검증 방식) |
| 호환 클라이언트 | RFC 8555 준수 클라이언트 전체 |
| 암호화 알고리즘 | RSA 2048 |
| ACME Directory URL | https://acme.navercloudtrust.com/acme/directory |
도메인 검증 방식 비교
ACME에서 지원하는 도메인 검증 방식에 대한 비교 설명은 다음과 같습니다.
DNS-01 동적 검증 방식
| 항목 | 내용 |
|---|---|
| 설명 | 발급 및 갱신 시마다 ACME 프로토콜을 통해 동적으로 도메인 검증 수행 |
| 자동화 조건 | Ncloud Global DNS API 연동 스크립트 또는 Certbot DNS 플러그인 필요 |
| 와일드카드 지원 | 지원 |
사전 검증 방식
| 항목 | 내용 |
|---|---|
| 설명 | Certificate Manager의 Domains 메뉴에서 미리 완료한 DNS TXT 검증 정보를 재사용 |
| 자동화 조건 | 별도의 DNS 레코드 조작 없이 클라이언트에서 자동 처리됨 |
| 와일드카드 지원 | 지원 |
적용 환경별 가이드
ACME는 주로 다음과 같은 환경에서 활용할 수 있습니다.
- 단독 서버 직접 적용: Linux 및 Windows 등 서버 OS에 인증서를 직접 구성하고 관리해야 하는 환경
- 컨테이너 환경: Kubernetes 내에서 cert-manager 등을 통해 인증서 갱신을 자동화하는 환경
- 멀티 클라우드: AWS 등 타 클라우드 인프라를 혼용하여 운영하며, 일관된 인증서 적용 및 관리가 필요한 환경
각 환경별 구성 방법에 대한 설명은 다음과 같습니다.
| 환경 | 설명 |
|---|---|
| Linux 서버 | Certbot과 Ncloud Global DNS 훅 스크립트를 연동하여 단독 서버 환경의 인증서 발급 및 갱신 완전 자동화 구성 |
| Windows 서버 | win-acme을 사용하여 Windows 서버 환경의 인증서 발급 및 갱신 자동화 구성 |
| Kubernetes | cert-manager의 ClusterIssuer를 활용하여 Kubernetes 클러스터 내 인그레스(Ingress) 및 파드(Pod) 인증서 생명주기 자동 관리 |
| AWS EC2 + ACM | acme.sh의 deploy hook을 활용하여 발급된 인증서를 AWS Certificate Manager(ACM)로 자동 Import 및 Application Load Balancer(ALB)에 반영 |
각 환경별 상세 구성 방법은 다음 문서를 참조해 주십시오.
- Certbot 기반 Linux 서버 인증서 자동화 가이드: Certbot 및 Ncloud Global DNS 연동을 통한 Linux 서버 인증서 자동화 방법 안내
- win-acme 기반 Windows Server 인증서 자동화 가이드: win-acme을 활용한 Windows 서버 인증서 자동화 방법 안내
- Kubernetes 환경 ACME 구성 가이드: cert-manager ClusterIssuer를 활용한 Kubernetes 인증서 자동화 방법 안내
- AWS EC2 환경 ACME 구성 가이드: acme.sh deploy hook을 활용한 ACM 연동 방법 안내