본문 바로가기

Services/AWS

[AWS] Caddy로 도메인 연동 및 HTTPS 활성화하기

기존에 클라우드 서버를 인스턴스 퍼블릭 IP 주소:3000으로 접근했다면, 이제 구매한 도메인으로 연결해보자

도메인 구매 및 EC2 연결은

2024.06.19 - [Services/AWS] - [AWS] Route53 네임서버 설정(+ gabia 도메인 구매) 글을 참고한다.

 

:3000 포트를 없애고 도메인 이름과 SSL 인증서를 추가한다.

 

 

 

1. caddy 설치

Caddy는 웹/앱을 호스팅하기 위해 사용되는 서버로, 설치하면 자동으로 systemd 서비스로 시작되고 실행된다.

 

1-1. Caddy 홈페이지 접속

https://caddyserver.com/docs/

 

Caddy - The Ultimate Server with Automatic HTTPS

Caddy is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go

caddyserver.com

 

 

 

1-2. Debian, Ubuntu, Raspbian packages 클릭

 

 

 

1-3. 5줄의 명령어를 터미널에 복사

 

포트 80에서 연결을 허용하는 웹 서버를 설치하는 것이다.

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

 

 

 

1-4. 포트 3000 삭제

EC2 보안그룹 섹션으로 돌아가 더 이상 3000번 포트는 필요하지 않으므로 삭제한다.

 

 

 

2. Caddy 실행

설치가 완료되면 caddy를 실행한다.

$ sudo systemctl start caddy

 

 

혹시 위의 명령어로 에러가 발생한다면

Job for caddy.service failed because the control process exited with error code.
See "systemctl status caddy.service" and "journalctl -xeu caddy.service" for details.

2024.06.29 - [💡/오류노트] - [Caddy] 웹 서버 설치 중 에러 해결 글을 참고한다.

 

 

 

이제 웹서버 접속시 포트 3000 없이 로컬호스트 포트 80으로 Caddy 홈페이지가 제공된다.

성공적으로 설정한 모습니다.

 

 

 

3. Caddyfile 수정

Caddyfile로 이동하여 Caddy 홈페이지가 아닌 나의 프로젝트가 뜨도록 수정한다.

 

 

파일로 이동

$ sudo vim /etc/caddy/Caddyfile

 

 

불필요한 내용은 주석처리 해주고

# root * /usr/share/caddy

# file_server

 

 

localhost는 3000으로 수정하고 주석 처리를 해제한 후 저장한다.

reverse_proxy localhost:8080 → reverse_proxy localhost:3000

포트 80으로 들어오는 모든 HTTP 요청을 localhost:3000으로 전달한다는 뜻이다.

Caddy가 *리버스 프록시(reverse proxy) 역할을 하는 것이다.

 

 

*리버스 프록시는 클라이언트의 요청을 받아 실제 서버로 전달하고, 서버의 응답을 다시 클라이언트로 전달하는 중간 서버를 말한다.

 

 

 

4. Caddy 재시작

Caddy를 다시 시작하면 Caddy 홈페이지가 아닌 자신의 홈페이지가 뜰 것이다.

$ sudo systemctl restart caddy

 

 

 

5. 도메인 지정

이제 지정 도메인을 설정해보자

5-1. Route53 - 호스팅 영역 - 지정할 도메인 클릭

 

 

 

5-2. 레코드 생성 - 마법사로 전환

하위 레코드를 만들어준다.

 

 

 

5-3. 라우팅 정책 선택(단순 라우팅) - 다음

 

 

 

5-4. 단순 레코드 정의

레코드 이름 입력
레코드 유형 유지
값/트래픽 라우팅 대상⎜레코드 유형에 따른 IP 주소 또는 다른 값 EC2 인스턴스 퍼블릭 IPv4 주소 입력

 

입력 후 단순 레코드 정의 - 레코드 생성

 

 

 

5-5. 레코드 생성 확인

 

 

 

6. HTTPS 설정

Caddy를 HTTPS로 설정한다. Caddy는 자동으로 SSL/TLS 인증서를 발급하고 갱신해주기 때문에 웹사이트를 안전하게 보호할 수 있다.

Caddyfile을 작성하여 HTTPS를 활성화해준다.

 

6-1. Caddyfile로 이동

$ sudo vim /etc/caddy/Caddyfile

 

: 80 → 레코드 이름으로 수정 후 저장

 

 

6-2. Caddy 재시작

$ sudo systemctl restart caddy

 

 

                                               ⬇️

 

 

HTTP에서 HTTPS로 활성화되었다 : )