1. Background
원래는 도메인에 돈을 들이고싶지 않아 그냥 Nginx를 리버스 프록시로 사용한다면, Nginx에서 SSL인증을 처리하도록 구현을 하려했으나 프론트측에서 안된다는 것을 확인하여 도메인을 구입한 후 SSL 인증서를 발급받기로 하였다.
2. DNS 설정하기
구입한 도메인의 DNS 설정에 가서 A레코드를 생성해 내 서버 IP로 연결해야한다.
도메인을 구입한 가비아 사이트에서 진행할 수 있다.
1) 도메인 관리페이지로 들어간다.
2) DNS 정보 섹션에서 도메인 연결 > 설정을 클릭한다.
3) 내가 설정하고싶은 도메인 명의 설정을 클릭한다.
4) DNS 설정 섹션에서 레코드 수정을 클릭한 다음, A 레코드를 추가한다.
타입으로는 A,
호스트로는 www(서브도메인)와 @(루트도메인을 의미한다),
값/위치에는 본인의 서버 IP 주소 (예시: 203.0.113.1 ) 를 적으면 된다.
TTL은 기본값 그대로 600으로 하고
저장을 해주면 된다.
이렇게 설정하면 본인의 도메인(여기에서는 kaggom.online ) 이 본인의 서버 IP 주소로 연결된다.
5) DNS 설정이 완료되었으므로 DNS 설정을 확인하기
DNS 전파 시간이 걸릴 수 있으므로 몇 분정도의 시간이 흐른 후 확인해야한다.
정상적으로 설정되었다면 아래와 같은 응답이 올것이다.
6) 서버의 Nginx 설정을 업데이트하기
Nginx 설정 파일에 들어가서 업데이트를 해야하는데 Nginx 설정 파일은 보통 /etc/nginx/nginx.conf 에 있지만, 개별 사이트 설정은 /etc/nginx/sites-available/ 디렉토리에 있을 수 있다.
FastAPI를 사용하는 나의 경우 /etc/nginx/sites-available/fastapi_app 이 파일에서 수정을 해주었다.
파일 내에서 server의 server_name 부분을 나의 새 도메인으로 변경을 하주면 된다.
7) Nginx 설정 테스트
sudo nginx -t
8) 설정이 올바르다면 Nginx를 재시작한다.
sudo systemctl restart nginx
9) Let's Encrypt SSL 인증서 발급
본인의 서버에서 다음과 같은 명령어로 SSL 인증서 발급을 받을 수 있다.
이 명령어를 치면 이메일 주소, 서비스 약관에 동의 등등 정보를 답하는 과정을 거쳐야한다.
Certbot이 자동으로 Nginx 설정을 수정할지도 물어볼텐데, 자동수정을 선택하도록 하자.
이 과정에서 Let's Encrypt가 자동으로 Nginx 설정을 업데이트를 해줄 것이다.
10) Nginx 재시작
sudo systemctl restart nginx
이렇게 되면 도메인과 SSL 인증서가 연결이 완료된다.
HTTPS가 올바르게 설정되어 안전한 연결이 가능해진다.
'Backend > Fast API' 카테고리의 다른 글
FastAPI 재시작 및 변경사항 적용 (1) | 2024.09.01 |
---|
댓글