개발 일지

서버 도메인 없이 EC2 서버에 https 적용하기

apple-tree 2024. 9. 7. 01:42

서버 도메인 없이 EC2 서버에 https 적용하는 방법을 가볍게 정리하고자한다.

 

현재 프리티어 서버를 사용하고, 서버 OS는 ubuntu를 사용하고 있다.

 

1. AWS EC2에 Caddy를 설치한다.

Caddy를 ubuntu에 설치하는 방법은 공식문서에도 나와있다. 

 

https://caddyserver.com/docs/install

 

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

 

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



2. Caddy config 파일 생성

sudo vi /etc/systemd/system/caddy.service

 

`caddy.service` 라는 이름의 파일을 만든 후 다음 아래의 내용을 복붙 후 저장한다. (자세한 내용은 잘 모르기에,,)

[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target

[Service]
Type=notify
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile --force
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

 

3. Caddyfile  수정

sudo vi /etc/caddy/Caddyfile

 

 

Caddyfile을 열면 기본적으로 적혀져 있는 값들이 있는데 주석을 제외하고, 해당 값들을 지우고 아래의 내용을 복붙한다.

{
    admin localhost:2020
}
<EC2 인스턴스의 퍼블릭 IPv4 주소>.nip.io {
    reverse_proxy localhost:8080 # 들어오는 요청을 8080포트로 포워딩
}
# 예시 : 
10.100.100.100.nip.io {
    reverse_proxy localhost:8080
}

 

 

 

4. Caddy 실행

sudo systemctl daemon-reload
sudo systemctl enable --now caddy
systemctl status -l caddy

 

해당 코드들을 순차적으로 실행시킨다.

성공적으로 수행하게 되면

 

아래와 같은 로그가 보이게 된다.

caddy.service - Caddy
     Loaded: loaded (/etc/systemd/system/caddy.service; enabled; preset: enabled)
     Active: active (running) since Fri 2024-09-06 16:04:02 UTC; 54s ago
       Docs: https://caddyserver.com/docs/
   Main PID: 39580 (caddy)
      Tasks: 6 (limit: 1130)
     Memory: 11.6M (peak: 11.8M)
        CPU: 81ms
     CGroup: /system.slice/caddy.service
             └─39580 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

 

 

이제부터는 Caddy를 실행하면 내 서버는 ssl 인증을 받아 https를 사용할 수 있게 된다.

sudo caddy start

 

 

'개발 일지'의 다른글

  • 현재글 서버 도메인 없이 EC2 서버에 https 적용하기

관련글