🧿

8. Certbot으로 HTTPS 인증

Created
2020/12/26 05:22
Tags
아직 우리의 사이트에 접근하면, 주소창 왼쪽에 불길한 Not secure 표시가 나타날 것이다. 인증되지 않은 사이트라는 의미인데, 이를 해결하기 위해서는 TLS/SSL 인증서를 발급받아야 한다. 여기서는 Certbot이라는 소프트웨어를 통해 쉽고 편하게 TLS/SSL 인증서를 발급받도록 한다. 이 과정은 TWpower's Tech Blog를 따랐다.

1. Certbot 설치

apt-get에 certbot 저장소 추가
sudo add-apt-repository ppa:certbot/certbot
Plain Text
복사
패키지 목록 업데이트 및 certbot 설치
sudo apt-get update sudo apt-get install python-certbot-nginx
Plain Text
복사

2. Nginx 설정

.config/nginx/[PROJECT_NAME].conf의 server_name을 사용하고자 하는 도메인 네임으로 설정한다. 여러 가지를 병기해도 좋다. 설정한 후 site-availablesite-enabled 에 적용해주는 것도 잊지 말자.
server { listen 80; listen [::]:80; server_name exam.example.com [SOME_IP_ADDRESS_OR_DOMAIN_NAME]; charset utf-8; client_max_body_size 128M; location /static/ { alias /srv/[PROJECT_NAME]/.static_root/; } location / { uwsgi_pass unix:///tmp/[PROEJCT_NAME].sock; include uwsgi_params; } }
Shell
복사

3. SSL 인증서 획득

다음의 명령어로 SSL 인증서를 획득한다. 여러 가지 옵션을 주는데, 잘 읽어보고 선택하자.
sudo certbot --nginx -d exam.example.com
Plain Text
복사
참고로 httphttps로 리디렉트한다는 옵션을 고르면 certbot이 알아서 nginx configuration을 커스터마이징해준다. (사실 그 옵션이 아니더라도 certification 파일 경로와 같은 configuration들을 알아서 지정해준다.) 나중에 nginx configuration을 바꿀 경우 곤란해질 수 있으니, 이 configuration을 잘 보고 .config/nginx/[PROJECT_NAME].conf 에 복붙해주던지 잘 바꿔주던지 하자.
획득한 SSL 인증서는 90일 동안만 유효하다고 하지만, certbot은 친절하게도 이를 자동으로 갱신해준다고 한다. 불안하면 /etc/cron.d/certbot이 존재하는지 확인해 보자.
이제 https://exam.example.com 을 통해 내 사이트에 접속할 수 있게 되었다!!
이로써 나름의 완전한 기능을 하는 프로젝트가 완성되었다. 여기서 Django 프로젝트 배포기를 마친다.
E.O.D.