저번 포스팅에서 작성하던 URL 단축 서비스를 aws lightsail에 배포하였다.
하지만 http로 배포되어 있는 게 거슬려 이번 기회에 ssl 인증서를 등록하여 https 설정을 해보았다.
크게 5단계로 나눌 수 있을 것 같다.
- 도메인 구매
- 도메인 등록
- 네임서버 설정
- SSL 인증서 발급
- Nginx 설정
위 흐름대로 따라가며 서술하도록 하겠다.
참고로 해당 포스팅은 서버에 nginx가 설치되어 있다는 가정 하에 진행됩니다.
✅ 도메인 구매
본인 같은 경우는 가비아에서 도메인을 구매하였다.
무료로 도메인을 얻을 수 있는 곳도 많이 있는 것 같은데 이왕 도메인 얻는 거 간결한 도메인을 얻고 싶어서 구매하였다.
웹을 넘어 클라우드로. 가비아
그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브
www.gabia.com
참고로 가비아에서 구매하여도 .shop 등과 같은 도메인은 매우 저렴하게 구매할 수 있다.

위 사진처럼 저렴한 도메인도 많다.
✅ 도메인 등록
도메인을 구매했다면 lightsail 콘솔로 돌아가 구매한 도메인을 등록해야 한다.

우선 DNS 영역 생성 버튼을 클릭한다.

그리고 자신의 도메인을 입력 후 DNS 영역을 생성한다.

그리고 레코드를 설정하는데 레코드 이름에는 '@'를 입력
확인에는 본인 인스턴스 IP를 입력해 준다.
🟨 규칙추가!
lightsail 인스턴스를 처음 만들었을 때 방화벽에 ssh와 http만 적용되어 있기 때문에 https도 추가해줘야 한다.

✅ 네임서버 설정
네임서버는 도메인 등록할 때 제공해 준 4개의 네임서버를 사용한다.
이제 다시 가비아로 넘어가서 나의 도메인에 lightsail에서 제공해준 4개의 네임서버를 활용해야 한다.

도메인 통합 관리툴을 클릭해서 접근한다.

그리고 네임서버 설정에 접근하여 lightsail에서 제공한 4개의 네임서버를 추가한 뒤 적용한다.
✅ SSL 인증서 발급
이제부터는 직접 서버에 접근하여 SSL 인증서를 발급받아야 한다.
본인은 let's encrypt를 통해 SSL 인증서를 발급받았다.
1️⃣ snap 패키지 설치
sudo apt update
sudo apt install snapd
snap을 설치하는 이유는 certbot 공식문서에서 snap을 활용한 설치를 권장하기 때문이다
2️⃣ certbot 설치
sudo snap install --classic certbot
3️⃣ 명령어 복사
sudo ln -s /snap/bin/certbot /usr/bin/certbot
4️⃣ 인증서 설치
sudo certbot --nginx -d <your domain>
위와 같이 인증서 설치를 완료하면 nginx 설정 파일에 자동으로 설정 내역들이 들어갔을 것이다.
✅ Nginx 설정
사실 SSL 인증서를 설치하면서 nginx 설정 파일에 자동으로 항목들이 기입됐을 것이다.
하지만 본인은 포트포워딩을 따로 해야 했고 설정 파일의 가독성이 좋지 않아 별도로 작성하였다.
server {
listen 80;
server_name magicmk.kr;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name magicmk.kr;
ssl_certificate /etc/letsencrypt/live/<your domain>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<your domain>/privkey.pem;
location / {
proxy_pass http://localhost:8080;
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;
}
}
/etc/nginx/sites-available/sbb에 위와 같이 작성한 뒤 nginx를 재기동하고 확인한다.
sudo systemctl restart nginx
nginx -t
✅ 테스트
http로 접근해도 https로 변환되어 정상적으로 접근하는 것을 확인할 수 있다.
'Server' 카테고리의 다른 글
Linux에서 Spring boot jar 특정 java version으로 실행하기 (1) | 2024.09.12 |
---|---|
Linux - Docker 컨테이너 올리기 (react, spring boot, mariadb) [2] (0) | 2024.06.18 |
Linux - Docker 컨테이너 올리기 (react, spring boot, mariadb) [1] (0) | 2024.06.18 |
Docker + Redis 설치 (0) | 2023.08.09 |