본문으로 바로가기

도메인 설정

category 실 없는 개발 2024. 9. 8. 13:35
728x90
반응형

이전 글에서 이어지는 내용

1. 도메인 구입 및 DNS 설정

먼저 도메인을 구입하고, 해당 도메인의 DNS 설정을 통해 도메인이 로컬 서버의 IP 주소를 가리키도록 해야 합니다.

  1. 도메인 구입: GoDaddy, Namecheap, Google Domains 등에서 도메인을 구입합니다.
    필자는 내도메인.한국 - 한글 무료 도메인 등록센터 (xn--220b31d95hq8o.xn--3e0b707e)
    여기를 이용했다 저렴한것도 여럿 있긴한데 공부하면서 돈쓰기엔 조금 그러니까 무료를 이용했습니다.

  2. DNS 설정: 도메인 제공업체의 DNS 설정 페이지에서 다음을 설정합니다.
    • A 레코드: @ 또는 원하는 서브도메인(www, ctf 등)을 설정하고, 서버의 공인 IP 주소(외부에서 접근 가능한 IP)를 입력합니다.
    • IP 주소가 동적이라면, DDNS 서비스(예: No-IP, DuckDNS)를 사용해 IP가 변경될 때 자동으로 업데이트되도록 할 수 있습니다.
 

내도메인.한국 - 한글 무료 도메인 등록센터

한글 무료 도메인 내도메인.한국, 웹포워딩, DNS 등 무료 도메인 기능 제공

xn--220b31d95hq8o.xn--3e0b707e

 

2. 로컬 서버에 포트 포워딩 설정

서버에 접근하기 위해 라우터에서 포트 포워딩을 설정해야 합니다.

  1. 라우터 접속: 라우터 설정 페이지에 접속하여 포트 포워딩 설정을 엽니다.
  2. 포트 포워딩 추가: 다음과 같이 설정합니다.
    • 외부 포트: 80 (HTTP)과 443 (HTTPS)
    • 내부 포트: 80과 443
    • 내부 IP 주소: 로컬 서버의 IP (예: 192.168.1.10)

3. Nginx를 사용해 Reverse Proxy 설정

Ubuntu에서 Nginx를 설치하고 Reverse Proxy 설정을 통해 도메인으로 접근할 수 있도록 합니다.

Nginx 설치

sudo apt install nginx -y
 

Nginx 설정 파일 생성 및 편집

# /etc/nginx/sites-available 디렉토리에 새 설정 파일을 만듭니다. 
# 예를 들어, ctfd.conf라는 파일을 생성합니다. 
sudo nano /etc/nginx/sites-available/ctfd.conf
 
다음 내용을 추가합니다. 이 설정은 HTTP에서 HTTPS로 리디렉션하고, 도메인에 접근하면 CTFd에 연결되도록 합니다.
server {
    listen 80;
    server_name yourdomain.com;  # 여기에 사용할 도메인 입력

    location / {
        proxy_pass http://localhost:8000;  # CTFd가 동작하는 로컬 주소와 포트
        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;
    }
}

Nginx 설정 활성화 및 테스트

Nginx 설정을 활성화하고 테스트한 후 서비스를 재시작합니다.

sudo ln -s /etc/nginx/sites-available/ctfd.conf /etc/nginx/sites-enabled/
sudo nginx -t  # 설정 테스트
sudo systemctl restart nginx

4. SSL 인증서 설정 (Let's Encrypt)

보안을 위해 HTTPS를 사용하는 것이 좋습니다. Let's Encrypt를 사용해 무료 SSL 인증서를 설정할 수 있습니다.

Certbot 설치

sudo apt install certbot python3-certbot-nginx -y

SSL 인증서 발급

sudo certbot --nginx -d yourdomain.com

명령어를 입력하면 이메일 주소와 인증 요청을 승인하는 과정을 거치게 됩니다.
자신의 이메일 주소와 y입력

자동 갱신 설정

SSL 인증서는 90일마다 갱신이 필요하므로 자동 갱신 설정을 확인합니다.

sudo certbot renew --dry-run

 

더보기

이러런 error창이 뜰 경우가 있는데 아무래도 무료 도메인 무료 인증서를 발급 받는 경우가 많은거 같아 발급 제한에 걸린 경우다 있다.

728x90
반응형

'실 없는 개발' 카테고리의 다른 글

간단한 CTF 페이지 개발  (9) 2024.09.07
환경 구축  (0) 2024.08.05
개인 오프라인 챗봇 개발 시작  (0) 2024.08.05