Nginx Proxy GuardNginx Proxy Guard

SSL/TLS 인증서 관리

자동화된 인증서 관리 기능을 통해 보안을 강화합니다.

Let's Encrypt 자동화

자동 발급

  • ACME v2 프로토콜 지원
  • DNS-01 챌린지를 통한 와일드카드 인증서 발급
  • 다중 도메인 (SAN) 인증서 지원

자동 갱신

  • 갱신 시점: 만료 30일 전 자동 갱신
  • 체크 간격: 6시간마다 만료 확인
  • 갱신 이력: 모든 갱신 시도 기록

스테이징 모드

Let's Encrypt Rate Limit을 피하기 위한 테스트 환경 지원

# .env 설정
ACME_STAGING=true  # 스테이징 (테스트)
ACME_STAGING=false # 프로덕션

DNS Provider 지원

DNS-01 챌린지를 위한 다양한 DNS Provider를 지원합니다.

지원 Provider

Provider설정 필드
CloudflareAPI Token 또는 Global API Key
Route53 (AWS)Access Key, Secret Key, Region
Google Cloud DNSService Account JSON
DigitalOceanAPI Token
VultrAPI Key
LinodePersonal Access Token

Provider 설정

  1. DNS Provider 생성
  2. API 자격 증명 입력
  3. 자격 증명 테스트
  4. 기본 Provider 설정 (선택)

자격 증명 테스트

Provider 설정 전 연결을 테스트하여 올바른 설정을 확인합니다.

커스텀 인증서

인증서 업로드

기존 인증서를 업로드하여 사용할 수 있습니다.

  • 인증서 (cert.pem): 서버 인증서
  • 개인 키 (key.pem): 개인 키 파일
  • 체인 인증서 (chain.pem): 중간 인증서 (선택)

자체 서명 인증서

테스트 환경을 위한 자체 서명 인증서를 생성합니다.

  • 도메인 지정
  • 유효 기간 설정
  • 즉시 생성

HTTP/3 (QUIC) 지원

프로토콜 지원

프로토콜상태특징
HTTP/1.1지원기본 호환성
HTTP/2기본 활성화멀티플렉싱, 헤더 압축
HTTP/3지원UDP 기반, 빠른 연결

HTTP/3 설정

HTTP/3는 UDP 443 포트를 사용합니다.

# docker-compose.yml
ports:
  - "443:443/tcp"   # HTTP/1.1, HTTP/2
  - "443:443/udp"   # HTTP/3 (QUIC)

인증서 모니터링

만료 예정 확인

  • 만료 30일 이전 인증서 조회
  • 대시보드 알림
  • 이메일 알림 (설정 시)

인증서 상태

상태설명
유효정상 동작 중
만료 임박30일 이내 만료 예정
만료됨인증서 만료
갱신 실패자동 갱신 실패

갱신 이력

모든 인증서 발급 및 갱신 이력이 기록됩니다.

  • 발급/갱신 시간
  • 성공/실패 여부
  • 오류 메시지 (실패 시)

TLS 보안 설정

프로토콜 버전

  • TLS 1.2 이상만 허용
  • TLS 1.0/1.1 비활성화 (보안 취약)

암호화 스위트

강력한 암호화 알고리즘만 허용합니다.

ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384

OCSP Stapling

  • 인증서 상태 확인 최적화
  • 클라이언트 지연 감소
  • 기본 활성화

HSTS (HTTP Strict Transport Security)

HTTPS 사용을 강제합니다.

설정설명
max-ageHSTS 유효 기간 (초)
includeSubDomains서브도메인 포함
preloadHSTS Preload List 등록

문제 해결

인증서 발급 실패

  1. DNS 설정 확인

    • 도메인이 서버 IP를 가리키는지 확인
    • DNS 전파 대기 (최대 48시간)
  2. DNS Provider 자격 증명 확인

    • API 토큰 권한 확인
    • Zone 편집 권한 필요
  3. Rate Limit 확인

    • Let's Encrypt Rate Limit에 도달했는지 확인
    • 스테이징 모드로 먼저 테스트
  4. 로그 확인

    docker logs npg-api | grep -i cert
    

갱신 실패

  1. DNS Provider 연결 상태 확인
  2. API 토큰 만료 여부 확인
  3. 도메인 소유권 확인

SSL 오류

  • ERR_CERT_INVALID: 인증서 유효성 확인
  • ERR_SSL_VERSION_OR_CIPHER_MISMATCH: TLS 설정 확인
  • ERR_CERT_DATE_INVALID: 인증서 만료 확인
Nginx Proxy Guard - 차세대 Nginx 프록시 관리 시스템