서버 도메인 없이 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
'개발 일지' 카테고리의 다른 글
왜 엔티티를 반환하지 않고 DTO를 반환하는가 - 2 (0) | 2024.10.29 |
---|---|
왜 엔티티를 반환하지 않고 DTO를 반환하는가? (0) | 2024.10.23 |
메소드 오버라이딩시 super 키워드 조심하기 (0) | 2024.08.16 |
@Bean vs @Component (0) | 2024.08.16 |
DB 작업시 @Transactional는 항상 써야할까? (0) | 2024.06.28 |