Visitors

iptime 공유기, 윈도우즈, 도커 데스크탑, wsl2, 우분투, nginx 도커 구조에서 메인도메인 및 서브도메인 ssl 한번에 하기 상세 가이드

iptime 공유기, 윈도우즈, 도커 데스크탑, wsl2, 우분투, nginx 도커 구조에서 메인도메인 및 서브도메인 ssl 한번에 하기 상세 가이드

ipTIME 공유기, Windows, Docker Desktop, WSL2, Ubuntu, Nginx Docker 환경에서 메인도메인 및 서브도메인에 SSL(HTTPS)을 한 번에 적용하는 상세 가이드

아래는 로컬/개발환경 또는 저비용 서버에서 ipTIME 공유기와 윈도우 기반 Docker Desktop, WSL2, Ubuntu, nginx 컨테이너를 활용하여 메인 도메인 및 여러 서브도메인에 SSL 인증서를 한번에 적용하는 방법입니다.


전체 구조 개요

  • ipTIME 공유기: 외부 포트 → 내부(WSL2 Ubuntu) 프록시
  • Windows + Docker Desktop + WSL2: 도커 엔진이 WSL2(우분투) 기반에서 실행됨
  • nginx 도커 컨테이너: 리버스 프록시, HTTPS 처리
  • Certbot(또는 다른 ACME 클라이언트): SSL 인증서 자동 발급/갱신(Let’s Encrypt 사용 권장)
  • 여러 도메인, 서브도메인: 예시) example.com, www.example.com, api.example.com 등

1. ipTIME 공유기 포트포워딩 설정

  • 80(HTTP), 443(HTTPS) 포트를 내부 Ubuntu 서버(WSL2)의 IP로 포워딩
  • 공유기 설정 → 고급설정 → NAT/라우터 관리 → 포트포워드
  • 외부포트 80/443 → 내부포트 80/443 (내부IP: WSL2 Ubuntu IP 주소)
  • 반드시 패킷이 WSL2 우분투까지 올 수 있도록 Windows 방화벽, 공유기 방화벽도 확인

2. Docker Desktop 및 WSL2 환경 준비

  • Docker Desktop을 설치하고, WSL2 기반으로 실행([2] 참고)
  • Ubuntu 설치
  • Docker Desktop → Settings → Resources → WSL Integration에서 Ubuntu 활성화

3. nginx 및 certbot 도커 컴포즈 파일 작성

프로젝트 디렉터리 구조 예시:

project-root/
│
├── docker-compose.yml
├── nginx/
│   ├── nginx.conf
│   └── conf.d/
│       └── default.conf
└── certbot/

docker-compose.yml 예시

version: '3'

services:
  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./nginx/conf.d:/etc/nginx/conf.d:ro
      - ./certbot/www:/var/www/certbot
      - ./certbot/conf:/etc/letsencrypt
    depends_on:
      - certbot

  certbot:
    image: certbot/certbot
    container_name: certbot
    volumes:
      - ./certbot/www:/var/www/certbot
      - ./certbot/conf:/etc/letsencrypt
nginx 컨테이너에서 인증서 파일과 웹 인증 파일을 공유 디렉터리로 사용할 수 있도록 설정[1][3].

4. nginx 설정

nginx.conf

user  nginx;
worker_processes  auto;

events { worker_connections  1024; }

http {
    include       mime.types;
    default_type  application/octet-stream;

    server {
        listen 80;
        server_name example.com www.example.com api.example.com;
        location /.well-known/acme-challenge/ {
            root /var/www/certbot;
        }
        location / {
            return 301 https://$host$request_uri;
        }
    }
    # SSL 설정은 인증서 발급 후 추가
}
인증서 발급을 위해 80포트 /.well-known/acme-challenge/ 경로를 certbot이 쓸 디렉터리로 연동[3].

5. 인증서 발급 (Certbot)

  1. 컨테이너 실행
   $ docker-compose up -d
  1. 도메인별 인증서 발급
   $ docker-compose run --rm certbot certonly \
      --webroot --webroot-path=/var/www/certbot \
      -d example.com -d www.example.com -d api.example.com
  • 여러 도메인을 -d 옵션으로 연속 지정 가능, 한 번에 SSL 인증서 발급[3].
  • 발급 후, ./certbot/conf/live/ 디렉터리에 인증서와 키 파일이 생성

6. nginx HTTPS 설정

default.conf 예시 (443 포트)

server {
    listen 443 ssl;
    server_name example.com www.example.com api.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://your_app_backend;    # 실제 서비스로 프록시
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
여러 도메인을 한 SSL 인증서로 커버(Subject Alternative Name 활용).

7. 인증서 자동 갱신

  • certbot 컨테이너에 크론잡 또는 스케줄러를 적용, 60일마다 자동 갱신 추천
  • 예시(수동 갱신):
  $ docker-compose run --rm certbot renew

8. 주의 및 최종 점검

  • DNS 설정에서 모든 도메인/서브도메인이 실제 WSL2 Ubuntu의 공인 IP로 연결되어 있어야 함
  • ipTIME 공유기 포트포워딩, 방화벽, Windows 방화벽까지 반드시 허용
  • 인증서 파일 경로 및 퍼미션 재확인, nginx 재기동

이 방식으로 메인 도메인 및 여러 서브도메인에 SSL을 한 번에 적용할 수 있습니다. 이 구조는 nginx, certbot, 도커, 서브도메인 모두를 쉽게 확장, 관리할 수 있는 장점이 있습니다[1][3][4].

https://velog.io/@rivkode/Docker-Nginx%EC%97%90%EC%84%9C-HTTPS%EB%A5%BC-%EC%9C%84%ED%95%9C-SSL-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%A0%81%EC%9A%A9-Lets-encrypt-Docker-compose,https://directori.tistory.com/136,https://olrlobt.tistory.com/82,https://tech.geusan.com/logs/6/,https://docs.redhat.com/ko/documentation/openshiftcontainerplatform/3.11/html/daytwooperations_guide/day-two-guide-managing-docker-certs

Read more

AI, 국제수학올림피아드에서 금빛 업적 달성! 구글과 오픈AI의 놀라운 성과

AI, 국제수학올림피아드에서 금빛 업적 달성! 구글과 오픈AI의 놀라운 성과

AI의 수학적 혁명: IMO 금메달 도전기 AI, 국제수학올림피아드에서 금메달 획득! 2025년, 구글과 오픈AI의 인공지능이 세계 최고 난이도의 수학 대회에서 놀라운 성과를 거두었습니다. 이는 AI의 수학적 추론 능력이 인간 수준에 근접했음을 보여주는 획기적인 순간입니다. 주요 성과 * 🏅 오픈AI: 6문제 중 5문제 해결, 42점 만점 중 35점 획득 * 🏅 구글 Gemini: IMO 금메달 기준

By King
WebAgent: Alibaba's Next-Gen AI Agent for Autonomous Web Information Exploration

WebAgent: Alibaba's Next-Gen AI Agent for Autonomous Web Information Exploration

WebAgent란 무엇인가? WebAgent는 알리바바의 통이랩(Tongyi Lab)에서 개발한 혁신적인 오픈소스 프로젝트로, AI 기반 웹 탐색의 한계를 넓히는 기술입니다. 핵심은 대형 언어 모델(LLM)을 기반으로 한 자율 에이전트로, 최소한의 인간 개입으로 웹을 탐색하고 정보를 수집하며 복잡한 추론 작업까지 수행할 수 있습니다. 이제 이 흥미로운 기술을 자세히 살펴보고 어떻게 작동하는지

By King
YOLO 모델 학습 결과 비교 기준과 효율적 평가 방법에 관한 고찰

YOLO 모델 학습 결과 비교 기준과 효율적 평가 방법에 관한 고찰

YOLO 모델 학습을 진행하며 데이터셋 증강, 배치 구성 등의 변수 조작 후 학습 결과 비교를 위한 연구는 매우 중요한 과정입니다. 특히, 논문 작성 시 수정이 가해지지 않은 기본 상태와 고안한 방법을 적용한 상태의 학습 결과를 비교할 때 어떤 모델 파일을 기준으로 할지 고민하는 경우가 많습니다. YOLO 학습을 400 epoch로 설정할

By King
역사의 장막을 벗기다: MLK 기밀문서, 정치 스캔들, 그리고 헌터 바이든의 충격 발언

역사의 장막을 벗기다: MLK 기밀문서, 정치 스캔들, 그리고 헌터 바이든의 충격 발언

미국 정치의 숨겨진 진실들, 이제 공개된다! 🔍 마틴 루터 킹 주니어 암살 문서 23만쪽 전격 공개 2025년 7월 21일, 국가정보국(DNI)이 MLK 암살 사건의 숨겨진 진실을 담은 6,000여 건의 문서를 최초로 공개했습니다. 트럼프 대통령의 행정명령에 따라 국민의 알 권리를 위해 추진된 이번 공개는 역사적 투명성의 중요한 이정표로 평가됩니다. 📂 오바마-코미

By King