자동 인증서 관리 환경

자동 인증서 관리 환경(Automatic Certificate Management Environment, ACME) 프로토콜은 인증 기관과 사용자의 서버 간의 상호 작용을 자동화하여 매우 낮은 비용으로 공개 키 기반 구조를 자동 배포할 수 있도록 하는 통신 프로토콜이다. 이는 인터넷 보안 연구 그룹(ISRG)이 Let's Encrypt 서비스를 위해 설계했다.

HTTPS를 통해 JSON 형식 메시지를 전달하는 것을 기반으로 하는 이 프로토콜은 자체 공인 IETF 워킹 그룹에 의해 에서 인터넷 표준으로 발표되었다.

 클라이언트 구현 

ISRG는 ACME를 위한 자유-오픈 소스 참조 구현을 제공한다. Certbot은 ACME 프로토콜을 사용하는 서버 인증서 관리 소프트웨어의 파이썬 기반 구현이며, Boulder는 Go (프로그래밍 언어)로 작성된 인증 기관 구현이다.

2015년 이후 모든 운영 체제에서 다양한 클라이언트 옵션이 등장했다.

캐디, Traefik Proxy, Nginx(2025년 8월부터), 아파치 HTTP 서버(2.4.30 이상)와 같은 웹 서버는 ACME 프로토콜을 사용하여 TLS 인증서를 자동으로 획득하는 기능을 내장하고 있다.

 API 버전 

 API 버전 1 
API v1 사양은 2016년 4월 12일에 발표되었다. 이 사양은 example.com 또는 cluster.example.com과 같은 정규화된 도메인 이름에 대한 인증서 발급을 지원하지만, *.example.com과 같은 와일드카드(wildcard)는 지원하지 않는다. Let's Encrypt는 2021년 6월 1일부로 API v1 지원을 중단했다.

 API 버전 2 
API v2는 여러 차례 연기된 끝에 2018년 3월 13일 출시되었다. ACME v2는 v1과 하위 호환되지 않는다. 버전 2는 *.example.com과 같은 와일드카드 도메인을 지원하여, 사설 네트워크에서 단일 도메인 아래에 단일 공유 "와일드카드" 인증서를 사용하여 https://cluster01.example.com, https://cluster02.example.com, https://example.com와 같이 많은 하위 도메인에 신뢰할 수 있는 TLS를 사용할 수 있도록 한다. v2의 주요 새로운 요구사항은 와일드카드 인증서 요청 시 도메인에 대한 제어를 확인하기 위해 도메인 이름 서비스 TXT 레코드 수정을 필요로 한다는 점이다.

ACME v1에서 v2로의 프로토콜 변경 사항은 다음과 같다:

 인증/발급 흐름이 변경되었다.
 JWS 요청 승인 방식이 변경되었다.
 JWS 요청 본문의 "resource" 필드가 새로운 JWS 헤더인 "url"로 대체되었다.
 디렉토리 엔드포인트/리소스 이름이 변경되었다.
 챌린지 리소스에서 URI → URL로 이름이 변경되었다.
 계정 생성과 ToS(서비스 약관) 동의가 단일 단계로 통합되었다. 이전에는 두 단계였다.
 새로운 챌린지 유형인 TLS-ALPN-01이 구현되었다. 이전의 두 가지 챌린지 유형인 TLS-SNI-01 및 TLS-SNI-02는 보안 문제로 인해 제거되었다.

 같이 보기 
 Simple Certificate Enrollment Protocol, 자동화된 인증서 배포 프로토콜에 대한 이전 시도.

 각주 

 외부 링크 

 ACME 클라이언트 목록 (Let's Encrypt)
 일반적으로 사용되는 ACME 클라이언트 목록 (acmeclients.com)

분류:인터넷 기반 프로토콜
분류:인터넷 보안
분류:공개 키 기반 구조