여는 글
이 글은 이전 도메인 구매 & 적용에 이어서 https적용까지 이어지는 글이다.https만 적용할 목적이라면 이 글을 쭉 따라가면 된다. 혹여나 도메인 구매나 적용을 하지 못했다면 아래 글을 통해 도메인 적용을 완료하고이 글을 따라 https적용을 진행하길 바란다.
간단히 배경지식을 설명하자면 HTTPS(HTTP Secure)는 웹사이트와 사용자의 웹 브라우저 사이에 전송되는 데이터를 암호화하여 보안성을 높이는 프로토콜이다. 이걸 적용함으로써 사용자는 안전하게 웹사이트를 이용할 수 있고 웹사이트는 사용자 데이터를 보호할 수 있는 것.
우리는 https 적용을 위해 Let's Encrypt와 Certbot을 이용하여 Nginx 서버에 HTTPS를 적용하는 방법을 진행하고 & 인증서 발급을 무료로 자동화하는 단계까지 적용해 서비스 운영에 더 이상 신경 쓸 필요 없이 관리가능하게 진행할 것이다.
아래 순서를 따라 진행해보자!
Let's Encrypt와 Certbot을 이용한 HTTPS 설정
1. 서버 업데이트 및 Certbot 설치
서버의 패키지를 최신 상태로 업데이트하고 Certbot과 Nginx 플러그인을 설치하는 과정이다.
Certbot은 Let's Encrypt에서 제공하는 인증서를 자동으로 발급받고 갱신해 주는 도구이다.
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
=> 다음 명령어를 실행시켜 주자
=> 중간에 [Y/n] 나오는데 Y입력하면 된다.
=> 다음 화면에서도 엔터
2. Certbot을 이용한 인증서 발급 및 Nginx 설정
sudo certbot --nginx -d preprintreserve.com -d www.preprintreserve.com
=> 이제 Certbot을 사용하여 인증서를 발급받고, Nginx 설정 파일을 자동으로 수정하여 HTTPS를 적용하는 과정이다. -d 뒤에 나오는 도메인들은 여러 개를 위와 같이 적어서 발급받을 수 있다. -> 해당 도메인에 대해서 인증서를 발급받는 것
=> 본인의 도메인을 입력해서 진행하자. 필자는 "preprintreserve.com"이라는 도메인으로 진행했다.
[진행과정]
=> 인증서 발급 과정에서 이메일 주소와 이용 약관 동의를 요청하는 단계이기에 계속 Y를 입력하면 된다.
=> 그럼 위와 같이 성공적으로 도메인이 등록되었다는 입력창이 뜨게 된다.
3. 인증서 자동 갱신 설정
Let's Encrypt에서 발급한 인증서는 90일 동안 유효하다. 따라서 인증서를 자동으로 갱신할 수 있도록 설정하는 과정을 진행할 것이다.
-> Certbot은 기본적으로 인증서 갱신을 자동화하는 기능을 제공한다.
sudo certbot renew --dry-run
=> 다음의 명령어로.. 자동화 설정
=> 다음과 같이 화면이 뜨면 성공
=> 별도의 설정이 필요하지 않으며 앞으로 인증서 만료 전에 자동으로 갱신된다.
4. 인바운드 규칙 https 추가
=> 마지막으로 https로 접근 허용을 위해 다음과 같이 EC2에 인바운드 규칙 편집에서 https 선택, 0.0.0.0/0 선택으로 규칙 추가를 해주자.
sudo nginx -t
sudo systemctl restart nginx
=> sudo nginx -t 로 성공 문구가 뜨면 잘 된 것이고, 엔진엑스를 재시작해주면
결과
=> 다음과 같이 성공적으로 https 적용이 된 것을 볼 수 있다!!