IT기기 팁

Docker + Nginx 서버구성 SSL까지

lt8492 2025. 12. 6. 14:39
반응형

 

Docker + Nginx + ZeroSSL - HTTPS 구성

HTTPS

요즘 웹사이트에서 HTTPS는 신뢰와 검색 노출의 기본 조건이다. 특히 Docker 기반 서버 환경에서는 nginx-proxy와 ZeroSSL을 이용해 무료로 SSL 인증서를 손쉽게 적용할 수 있다. 이 글에서는 Docker Compose 환경에서 ZeroSSL 기반 HTTPS를 완벽하게 구성하는 방법을 정리한다.

---

Nginx-Proxy와 ZeroSSL의 조합

jwilder/nginx-proxy는 도커 컨테이너의 호스트 이름을 자동으로 감지해 Reverse Proxy 설정을 자동화한다.

여기에 nginx-proxy/acme-companion을 함께 사용하면 SSL 인증서를 자동으로 발급하고 갱신까지 처리한다.

이때, ZeroSSL의 EAB(Elliptic Account Binding) 키를 사용하면 인증서 발급 한도를 넉넉하게 사용할 수 있다.

---

Docker Compose 예시 설정

version: "3"

services:

nginx-proxy:

image: jwilder/nginx-proxy

container_name: nginx-proxy

restart: always

ports:

- "80:80"

- "443:443"

volumes:

- /var/run/docker.sock:/tmp/docker.sock:ro

- ./certs:/etc/nginx/certs

- ./vhost.d:/etc/nginx/vhost.d

- ./html:/usr/share/nginx/html

acme-companion:

image: nginxproxy/acme-companion

container_name: nginx-proxy-acme

restart: always

environment:

- DEFAULT_EMAIL=admin@yourdomain.com

- ACME_CA_URI=https://acme.zerossl.com/v2/DV90

- ACME_EAB_KID=YOUR_EAB_KID

- ACME_EAB_HMAC_KEY=YOUR_EAB_HMAC_KEY

volumes_from:

- nginx-proxy

volumes:

- /var/run/docker.sock:/var/run/docker.sock:ro

- ./certs:/etc/nginx/certs

- ./acme:/etc/acme.sh

---

서비스 컨테이너 설정 예시

services:

web:

image: nginx:alpine

container_name: my-app

environment:

- VIRTUAL_HOST=example.com

- LETSENCRYPT_HOST=example.com

volumes:

- ./html:/usr/share/nginx/html

VIRTUAL_HOST와 LETSENCRYPT_HOST를 지정하면 자동으로 SSL이 설정된다.

---

ZeroSSL 사용 시 주의할 점

EAB 키는 1회성 발급이므로 안전하게 보관해야 한다.

인증서 자동 갱신은 acme-companion이 주기적으로 처리하지만, 로그 확인으로 정상 작동을 확인하는 것이 좋다.

기존 Let’s Encrypt 설정을 그대로 유지하면서 ZeroSSL로 전환해도 된다.

 

이 구성은 서버 관리 자동화와 보안 강화를 동시에 실현한다.

별도의 수동 인증서 갱신이나 설정 파일 수정 없이, 도커 컨테이너가 자동으로 SSL을 유지하는 환경을 만든다.

ZeroSSL은 발급 안정성과 관리 편의성 면에서 점점 더 선호되는 대안으로 자리 잡고 있다.

반응형

'IT기기 팁' 카테고리의 다른 글

코틀린 클래스  (0) 2025.12.06
코틀린 반복문  (0) 2025.12.06
코틀린 함수  (0) 2025.12.06
코틀린 조건문  (0) 2025.12.06
코틀린 문법  (0) 2025.12.06