Angie에서 TLS 인증서 자동화: ACME 모듈 완전 가이드
Angie 웹 서버의 ACME 모듈은 최소한의 노력으로 TLS 인증서 발급과 갱신을 자동화합니다. 와일드카드 인증서도 지원하며, 내장된 ACME 프로토콜로 certbot 같은 외부 도구 없이 사이트 보안을 간편하게 설정하고 관리할 수 있습니다.
표준 인증서를 위한 HTTP 챌린지 설정
HTTP 챌린지(HTTP-01)를 통해 인증서를 발급하려면 http 컨텍스트 내 acme_client 지시어에서 속성을 정의하세요. RSA와 ECDSA 인증서 예시 구성:
http {
resolver 127.0.0.53 ipv6=off;
acme_client rsa https://acme-v02.api.letsencrypt.org/directory key_type=rsa;
acme_client ecdsa https://acme-v02.api.letsencrypt.org/directory;
}
그 다음 서버에서 이 인증서를 사용하도록 설정:
server {
listen 443 ssl;
server_name site.ru www.site.ru test.site.ru company.ru;
acme rsa;
acme ecdsa;
ssl_certificate $acme_cert_rsa;
ssl_certificate_key $acme_cert_key_rsa;
ssl_certificate $acme_cert_ecdsa;
ssl_certificate_key $acme_cert_key_ecdsa;
}
Angie는 acme_http_port로 별도 지정하지 않으면 자동으로 80번 포트를 열어 HTTP 챌린지를 처리합니다. 인증서 발급 상태는 error_log나 API로 확인하며, 성공적인 갱신 시 notice 레벨 메시지가 기록됩니다.
DNS 검증으로 와일드카드 인증서 발급
2차 도메인과 모든 3차 서브도메인을 커버하는 와일드카드 인증서는 DNS 챌린지(DNS-01)가 필요합니다. 호스팅 패널에서 DNS 레코드를 생성해 존 위임을 설정하세요:
_acme-challenge.site.ru. 60 IN NS ns.site.ru.
ns.site.ru. 60 IN A {서버_IP}
그 다음 challenge=dns 매개변수로 acme_client를 설정:
http {
resolver 127.0.0.53 ipv6=off;
acme_client ecdsa https://acme-v02.api.letsencrypt.org/directory challenge=dns;
server {
listen 443 ssl;
server_name site.ru *.site.ru;
acme ecdsa;
ssl_certificate $acme_cert_ecdsa;
ssl_certificate_key $acme_cert_key_ecdsa;
}
}
Angie는 DNS 쿼리를 위해 53번 포트를 열어요. 로컬 서비스 충돌을 피하려면 acme_dns_port를 사용하세요.
대체 방법과 고급 기능
표준 챌린지가 불가능할 때 ACME 모듈은 파일 생성이나 DNS 레코드 관리를 외부 앱으로 위임하는 커스텀 훅을 지원합니다. 80번 포트를 열 수 없을 때는 challenge=alpn으로 TLS-ALPN-01 방법을 사용할 수 있어요.
주요 이점
- 자동화: Angie ACME 모듈은 와일드카드 포함 TLS 인증서 발급과 갱신을 완전 자동화해 수동 작업이 필요 없습니다.
- 유연성: HTTP-01, DNS-01, TLS-ALPN-01 챌린지와 복잡한 설정을 위한 커스텀 훅을 지원합니다.
- 성능: 인증서를 서버 메모리에 로드하고
ssl_certificate_cache로 캐싱해 최적화할 수 있습니다. - 호환성: Let's Encrypt 같은 모든 ACME 준수 제공자와 작동합니다.
- 모니터링:
error_log와 API로 인증서 상태를 추적합니다.
구현 실전 팁
ACME 모듈 설정 시 다음을 유의하세요:
- 테스트: 초기 설정 시 Let's Encrypt 스테이징 환경을 사용해 속도 제한을 피하세요.
- 보안:
resolverDNS 서버가 신뢰할 수 있는지 확인하고 필요 시 IPv6를 비활성화하세요. - 캐싱: 인증서 변수 사용 시
ssl_certificate_cache로 성능을 높이세요. - 포트:
acme_http_port와acme_dns_port로 챌린지 포트를 제어해 충돌을 방지하세요.
Angie의 ACME 모듈은 TLS 인증서 관리를 간소화해 운영 비용을 줄이고 웹 앱 보안을 강화합니다. 원활한 통합으로 개발자와 관리자가 일상 유지보수 대신 핵심 업무에 집중할 수 있어요.
— Editorial Team
아직 댓글이 없습니다.