-
NGINX가 SSL/TLS 인증서 발급·갱신을 자동화하는 ACME 프로토콜을 네이티브로 지원하는 프리뷰 버전을 공개함
- Rust 기반의 신규 모듈 ngx_http_acme_module 을 통해 외부 툴 없이 NGINX 설정만으로 인증서 요청·설치·갱신이 가능해짐
- 이를 통해 Certbot 같은 외부 툴 의존을 줄이고, 보안성과 플랫폼 독립성이 높아짐
- 초기 버전은 HTTP-01 챌린지를 지원하며, TLS-ALPN·DNS-01 지원은 향후 계획됨
- ACME 지원은 웹뿐만 아니라 IoT·에지 컴퓨팅 환경의 보안 자동화에도 중요한 역할을 할 것으로 기대됨
개요 및 주요 변화
- NGINX가 ACME 프로토콜 지원 기능의 프리뷰 버전을 공개함
- 새로운 모듈인 ngx_http_acme_module을 통해 NGINX 설정에서 인증서 요청, 설치, 갱신을 직접 처리할 수 있게 설계됨
- 이 ACME 지원은 내부적으로 NGINX-Rust SDK를 활용하며, Rust 기반의 동적 모듈 형태로 제공됨
- 오픈소스 사용자 뿐만 아니라 NGINX Plus 엔터프라이즈 고객 모두 이 기능을 사용할 수 있음
- 기존 Certbot과 같은 외부 툴에 대한 의존도를 줄임으로써, 인증서 관리의 보안성과 효율성을 높임
ACME 프로토콜 소개
-
ACME(Automated Certificate Management Environment) 프로토콜은 SSL/TLS 인증서의 발급, 검증, 갱신, 폐기를 자동화하는 통신 프로토콜임
- 클라이언트가 CA(Certificate Authority)와의 자동화 통신을 통해 직접 중간자의 수작업 없이 인증서 라이프사이클을 관리할 수 있음
-
Internet Security Research Group(ISRG) 이 2015년 Let’s Encrypt 프로젝트로 개발 및 공개함
- ACME의 등장 전에는 인증서 발급 과정이 수동적이고 비용과 오류 가능성이 높았음
- 최신 ACMEv2는 인증 방식, 와일드카드 지원 등 다양한 기능이 추가되어 유연성과 보안성이 증가함
NGINX의 ACME 기반 인증서 자동화 흐름
- NGINX에서 ACME 프로토콜을 활용한 인증서 라이프사이클 자동화는 아래 4단계로 이루어짐
-
1. ACME 서버 설정
- ACME 기능 활성화를 위해서는acme_issuer로 ACME 서버의 디렉터리 URL을 반드시 지정해야 함
- 인증서 이슈 발생 시 클라이언트 연락 정보, 상태 데이터 저장 경로 등도 옵션으로 지정 가능
-
2. 공유 메모리(zone) 할당
-
acme_shared_zone으로 인증서와 개인키, 챌린지 데이터 저장을 위한 공유 메모리 zone을 추가로 설정 가능
- 기본 사이즈는 256K이며 필요에 따라 증설 가능
-
3. 챌린지(Challenge) 구성
- 현재 프리뷰 버전은 HTTP-01 챌린지만 지원하며, 도메인 소유권 검증에 사용됨
- 이를 위해 NGINX 설정에서 포트 80 리스너와 기본 404 응답 설정을 정의해야 함
- 추후 TLS-ALPN, DNS-01 챌린지 지원 예정
-
4. 인증서 발급 및 갱신
-
acme_certificate 디렉티브를 서버 블록에 추가하면, 해당 도메인에 대해 TLS 인증서 발급/갱신 자동화 가능
- 인증서 발급 대상 도메인은 일반적으로 server_name으로 명시함
-
server_name에서 정규표현식, 와일드카드는 프리뷰 버전에서 지원되지 않음
- 모듈 내 변수 $acme_certificate, $acme_certificate_key를 통해 자동으로 인증서와 키가 연결됨
주요 장점
- 전 세계 HTTPS 사용 급증의 중심에는 ACME 프로토콜이 있음
- 자동화된 인증서 관리로 인증서 라이프사이클 관리 비용 및 수작업에 의한 오류가 현격하게 줄어듦
- 외부 툴 제거로 공격 표면 축소 및 이식성 확보
- 다양한 환경에서의 보안 표준화 촉진
향후 계획
- TLS-ALPN, DNS-01 챌린지 지원 추가 예정
- 사용자 피드백 기반으로 기능 확장
-
IoT, API, 엣지 컴퓨팅 도입 확대에 따라, ACME는 향후 더욱 넓은 범위의 자동화 보안 인프라에서 핵심 역할을 담당할 것으로 예상됨
-
NGINX의 네이티브 ACME 지원은 웹 보안과 자동화, 확장성을 미래 표준으로 만들어가는 기반 역할을 할 것
시작하기