-
서버 도메인 없이 EC2 서버에 https 적용하기개발 일지 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
'개발 일지' 카테고리의 다른 글
왜 엔티티를 반환하지 않고 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