아직 우리의 사이트에 접근하면, 주소창 왼쪽에 불길한 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-available 과 site-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
복사
참고로 http를 https로 리디렉트한다는 옵션을 고르면 certbot이 알아서 nginx configuration을 커스터마이징해준다. (사실 그 옵션이 아니더라도 certification 파일 경로와 같은 configuration들을 알아서 지정해준다.) 나중에 nginx configuration을 바꿀 경우 곤란해질 수 있으니, 이 configuration을 잘 보고 .config/nginx/[PROJECT_NAME].conf 에 복붙해주던지 잘 바꿔주던지 하자.
획득한 SSL 인증서는 90일 동안만 유효하다고 하지만, certbot은 친절하게도 이를 자동으로 갱신해준다고 한다. 불안하면 /etc/cron.d/certbot이 존재하는지 확인해 보자.
이로써 나름의 완전한 기능을 하는 프로젝트가 완성되었다. 여기서 Django 프로젝트 배포기를 마친다.
E.O.D.