Nginx Let's encrypt 설정하기 : CentOS 7.5 환경

시스템운영/Nginx|2019.02.27 18:04
CentOS 7.5 기준

1. Centos Nginx 버전 Let's Encrypt 설치
 
yum install python2-certbot-nginx


2. Let's Encrypt를 통한 SSL 발급 진행 (아래의 발급 요청한 도메인은 : hosts.tistory.com 임)

certbot certonly --standalone -d hosts.tistory.com


3. Let's Encrypt를 통한 발급된 SSL 인증서를 Nginx에 설정

발급된 SSL 인증서는 별도로 기본 경로를 저장하지 않았기 때문에 아래와 같은 경로에서 개인키와 중간키가 생성된 것을 확인 할 수 있음

예) /etc/letsencrypt/live/발급요청도메인/fullchain.pem
예) /etc/letsencrypt/live/발급요청도메인/privkey.pem

$ sudo vi /etc/nginx/nginx.conf
server {
  listen 443 ssl;
  server_name hosts.tistory.com;

  ssl_certificate /etc/letsencrypt/live/hosts.tistory.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/hosts.tistory.com/privkey.pem;


  location / {
    ...
  }
}


4. nginx 설정값 유효성 확인 : ok 값이 아닌경우 잘못된 설정이 있는지 재확인 필요

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


5. let's encrypt SSL 인증서 갱신

제공되는 인증서는 90일 만료이며 60일 이후부터 갱신이 가능합니다.

#1. 수동으로 갱신 : 아래와 같이 입력하면 인증서 갱신 및 nginx 재시작까지 한번에 완료

sudo certbot certonly --standalone -d hosts.tistory.com --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"

#2. Crontab을 통한 배치 갱신 : 매주 월요일 새벽4시마다 갱신시도

0 4 * * 1 /usr/bin/certbot renew --quiet --renew-hook "/usr/sbin/service nginx reload"

댓글()