공식문서
웹 서버의 SSL / TLS 인증서를 가져오고 배포하는 사용하기 쉬운 자동화 프로그램
명령어
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx
$ sudo certbot --nginx
nginx 설정
#nginx
upstream django {
server unix:/home/ubuntu/dev/run/uwsgi.sock;
}
server {
listen 80;
server_name www.bythelaw.co.kr;
# $scheme will get the http protocol
# and 301 is best practice for tablet, phone, desktop and seo
return 301 $scheme://bythelaw.co.kr$request_uri;
}
server {
server_name bythelaw.co.kr;
charset utf-8;
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass django;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/bythelaw.co.kr/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/bythelaw.co.kr/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = bythelaw.co.kr) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
server_name bythelaw.co.kr;
return 404; # managed by Certbot
}
자동화 시키기
하기 블로그를 보고 따라서 자동화를 시켰으나 기존에 사용하던 python-certbot-nginx와는 조금 다른 버전인것 같아서 연구가 좀 필요하다
http://riseshia.github.io/2016/10/16/certbot-let-s-encrypt.html