Nginx, FastAPI 서버 SSL 적용하기

김지원·2023년 3월 28일
0

Backend

목록 보기
4/4

테스트 페이지를 만들고 vercel로 배포했다.
But.. vercel로 배포한 링크에서 api 요청을 날리면 아래와 같은 에러가 발생하는 문제가 생겼다.

⚙️ 해결: API server HTTPS 설정

1. 도메인 구매

무료로도 도메인을 사용할 수 있다고 한다. 나는 aws를 사용해보고 싶어서 Route 53에서 12달러 주고 구입했다.

현재는 등록된 도메인이 있어서 위처럼 뜨지만, 없을 경우 도메인 등록 아래 새로운 도메인 등록하는 버튼이 있다.

그 버튼을 클릭하면 아래처럼 도메인 등록 창이 뜬다.

원하는 도메인 이름을 입력칸에 넣어주면 되고, 확장자의 경우 종류에 따라 가격이 다르므로 잘 확인하고 선택하도록 하자.
이후 조금 기다리면 호스팅 영역에 새로 등록한 도메인을 볼 수 있을 것이다.

DNS 추가 전, 위 이미지에서 첫 두 줄만 보일 것이다.

2. DNS 추가하기

레코드 생성 버튼을 클릭한다. 나의 경우 서버 IP주소를 입력창에 넣어주었다.

조금 기다리면 호스팅 영역에서 방금 추가한 새로운 레코드가 생성된 걸 확인할 수 있다. 이제 Nginx 에서 cerbot을 사용하여 ssl 설정을 해주면 된다.

3. cerbot

💻 cerbot 설치

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo apt-get update

$ sudo apt-get install certbot python3-certbot-nginx

Nginx 세팅이 되어있다고 가정하고 진행해보겠다.
server_name 에 해당하는 도메인에 SSL 인증을 적용하자.

✅ SSL 인증 획득하기

$ sudo certbot --nginx -d example.com -d www.example.com

참고: 인증서 자동갱신 설정 확인

설정한 cerbot은 90일 동안만 유효하므로 갱신을 해줘야 한다. 매번 해주기 귀찮지만 설치한 cerbot은 자동으로 갱신을 이틀 단위로 해준다.

해당하는 갱신이 제대로 되는지 확인하고 싶으면 아래 명령어로 확인이 가능하다.

sudo cerbot renew --dry-run

참고

profile
Make your lives Extraordinary!

0개의 댓글