무료도메인 + HTTPS 적용

WAS·2026년 5월 21일

사이드프로젝트

목록 보기
3/6

✅ 전체적인 순서

1. 도메인 먼저 확보
2. 도메인 → 서버 IP 연결 (DNS)
3. Nginx 설치
4. Certbot으로 SSL 인증서 발급
5. HTTPS 완성

HTTPS 를 적용하기 위해서는 먼저 도메인이 등록되어 있어야한다
포트폴리오가 목적이기 때문에 무료로 도메인을 적용해주는 duckdns.org 사이트를 참고하자

✅ 도메인 확보 및 서버 IP 연결

  1. 사용할 subdomain 을 입력 -> 나는 juyoungshop 으로 입력함

  2. add domain 클릭

  3. 등록된 도메인에 현재 current ip 를 입력 후 update ip 클릭

  4. http://juyoungshop.duckdns.org:8080/ 로 접속이 되는것을 확인

도메인에 포트는 등록하지 않기 때문에 현재 :8080 으로 접속하는것을 확인할 수 있다.
뒤에 나올 HTTPS 설정을 할 때 포트를 생략하는 작업을 해야한다.


✅ 오라클 클라우드 서버 방화벽 포트 열기

OCI 콘솔 → Networking → Virtual Cloud Networks → VCN 클릭
보안 클릭 → Default Security List... 클릭 → 보안규칙에서 Add Ingress Rules
아래 사진과 같이 80과 443 포트 추가

💡 80 vs 443
로컬환경에서 서버 띄울때 기본값 포트가 8080인것처럼
HTTPS 의 기본 포트는 443 이다.
80 브라우저의 기본 포트로 URL에 포트 안써도 자동으로 접속됨

Source CIDRProtocolPort
0.0.0.0/0TCP80
0.0.0.0/0TCP443


✅ Nginx 설치 및 설정 (리버스 프록시)
sudo apt update && sudo apt install -y nginx

1️⃣ Nginx 설치
sudo nano /etc/nginx/sites-available/shop

2️⃣ Nginx 설정 파일 생성
sudo nano /etc/nginx/sites-available/shop
텍스트 편집기가 열리면 아래 내용 붙여넣기

  server {
      listen 80;
      server_name juyoungshop.duckdns.org;

      location / {
          proxy_pass http://localhost:8080;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
      }
  }

3️⃣ 설정 적용

# 설정 파일 활성화 (바로가기 링크 생성)
sudo ln -s /etc/nginx/sites-available/shop /etc/nginx/sites-enabled/

# 문법 오류 검사
sudo nginx -t
# 정상이면 → "syntax is ok / test is successful" 출력

# Nginx 재시작 (설정 적용)
sudo systemctl reload nginx

4️⃣ 접속 확인
http://juyoungshop.duckdns.org 접속해보기

💡 만약 접속이 안된다면 (방화벽 문제)
OCI 보안 목록은 열었지만 서버 자체가 막고 있을 경우

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

위 2문장 추가후 재접속해보기

💡 Nginx를 쓰는 이유

기능설명
포트 변환80/443 포트 → 8080으로 안전하게 전달
SSL 적용HTTPS 인증서(Let's Encrypt) 붙이기 쉬움
보안앱 서버를 외부에 직접 노출하지 않음

✅ HTTPS 설정 (SSL 인증서 발급)

1️⃣ Certbot 설치
sudo apt install -y certbot python3-certbot-nginx

2️⃣ SSL 인증서 발급
sudo certbot --nginx -d juyoungshop.duckdns.org

  • 이메일 입력 요청 → 본인 이메일 입력
  • 약관 동의 → Y
  • 이메일 수신 동의 → Y 또는 N

3️⃣ 인증서 자동 갱신 확인
인증서는 90일마다 만료됩니다. 아래 명령어로 자동 갱신이 등록됐는지 확인합니다.
sudo certbot renew --dry-run
Congratulations 뜨면 자동 갱신 정상 등록된 것

4️⃣ 접속 확인
https://juyoungshop.duckdns.org 접속 확인

💡 Certbot을 쓰는 이유

기능설명
무료Let's Encrypt 인증서 무료 발급
자동 설정Nginx 설정 자동으로 HTTPS로 변경
자동 갱신90일마다 자동으로 인증서 갱신

💡 Ngix 와 WebSocket
로컬에서는 웹소켓 처리가 잘 되다가, Ngix 적용한 운영환경에서는 메시지가 실시간으로
안보내지는 것을 확인할 수 있다.

Nginx 는 기본적으로 배달부 의 역할을 한다.


추가로 HTTPS 적용시
환경설정이나, 소스코드에 적용되어있는 하드코딩 소스들을 맞춰서 변경해줘야한다.
앞에 HTTPS 를 붙여서!

EX)

profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글