프로젝트

Spring 서버 HTTPS 로 배포하기

정코딩딩 2024. 8. 30. 11:39

지금까지 배포하고 사용하고 있던 서버는 http 였는데, 소켓 통신을 시작하면서부터 프론트와 쿠키로 정보들을 주고받으려면 https로 변경해야한다고 해서 변경하는 작업을 진행해보겠습니다..!

 

가비아에서 도메인 이름 사기

 

먼저, 가비아로 가서 도메인을 구매해줍니다!

원하는 도메인 이름을 검색하셔서 원하는 가격의 도메인 을 구매해줍니다.

 저는 1900원짜리 도메인을 구매해보았습니다.. 호호

 

DNS 설정하기

 

도메인 이름을 구매했다면 DNS 를 설정해보겠습니다.

`가비아 홈페이지` -> `My가비아` -> `DNS 관리툴` 로 이동합니다.

 

그러면 구매한 도메인이 들어있는 것을 확인할 수 있습니다!

오른쪽에 있는 `설정`을 누르고, `레코드 수정` 을 눌러줍니다.

 

값/위치에는 AWS EC2 IP 주소를 넣어주시면 됩니다!! 이걸 바꾸지 않기 위해서는 탄력적 IP 설정도 해주시는 것이 좋습니다!!

 

여기까지가 가비아에서의 도메인 설정입니다!


자 이제 본격적으로 시작해보겠습니다.

 

HTTPS 를 사용하기 위해서는 SSL 또는 TLS 인증서를 발급받아야합니다.

저는 도메인을 이용해서 Let's Encrypt 인증서 를 발급받아보겠습니다.

 

먼저 터미널로 서버에 접속해줍니다~

그다음 `sudo apt update`로 업데이트를 해주고,

`sudo apt install certbot python3-certbot-nginx`로 cerbot 을 깔아주세요!

 

`sudo apt install vim` 을 입력하여 vim 도 설치하겠습니다.

`sudo vi /etc/nginx/sites-available/default` 이 명령어를 입력해서 Nginx 설정파일로 들어갑니다.

`i` 를 눌러서 편집모드로 바꿔주고

server_name 에 아까 가비아에서 입력했던 두가지 도메인을 모두 입력해줍니다. 입력을 완료하면 `esc` -> `:wq` 를 누르고 나와줍니다.

파일을 나와서는 제대로 설정이 된 건지 확인하기 위해 위처럼 입력해줍니다. ok, successful 이 떴다면 문제없이 성공입니다.

설정파일을 다시 로드하기 위해서 `sudo systemctl reload nginx` 를 통해 Nginx 를 reload 합니다.

 

`sudo certbot --nginx -d [도메인]` 으로 인증서를 발급받겠습니다!

저는 도메인 두개를 전부 입력할건데, sudo certbot --nginx -d [도메인] -d [도메인] 으로 나열해서 사용할 수 있습니다.

이메일도 입력해주고 모두 y 를 입력해줍니다.

`sudo service nginx restart` 로 nginx 를 재시작해줍니다.

그 다음 url 창에 도메인 주소를 입력해보면 다음과 같이 nginx 가 설치된 것을 확인할 수 있습니다.

제가 진행하고 있는 프로젝트는 도커 컨테이너를 사용하고 있는데요! 이미 EC2 컴퓨터에 Nginx 를 깔아둔 상태이기 때문에 도커에는 따로 깔아주지 않았습니다.

이제는 프록시 설정을 하면 마지막으로 마무리가 됩니다.

저는 최종적으로 이렇게 수정해서 수정사항이 반영되는 것 까지 확인하였습니다!