도메인과 SSL 인증서 연결하기(HTTPS 연결)

    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

    댓글