nginx letsencrypt 인증서 설치
Let's Encrypt 인증서 발급
/home/data/letsencrypt 폴더 미리 생성해두기 - 임의의 경로로 변경 가능
vi well-known.conf
location ~ /.well-known/acme-challenge {
root /home/data/letsencrypt; // 임의의 경로로 설정
allow all;
}
vi nginx.conf
server {
include well-known.conf; // 위에서 생성한 well-known.conf 파일
}
./letsencrypt-auto certonly
이메일 입력
도메인입력
a.domain.com, b.domain.com, c.domain.com
IP being logged? 동의
인증관련 폴더 선택하는 부분이 나오는데 아래쪽에 설정한
/home/data/letsencrypt 폴더 선택 하면 알아서 인증해줌.
vi ssl_domain.conf
listen 443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/a.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/a.domain.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/a.domain.com/chain.pem;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3;
#ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_ciphers 'ECDH !aNULL !eNULL !SSLv2 !SSLv3'; # A+
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8;
위와 비슷하게 설정하면 됨.
nginx 에서 ssl 적용할 도메인 설정된 부분
vi nginx.conf
server {
include well-known.conf; // 위에서 생성한 well-known.conf 파일
include ssl_domain.conf; // ssl 설정
}
letsencrypt 는 3개월에 한번씩 갱신해줘야함.
vi lets-renew.sh
/root/letsencrypt/letsencrypt-auto certonly -a webroot --agree-tos --renew-by-default --webroot-path=/home/data/letsencrypt/ -d a.domain.com -d b.domain.com -d c.domain.com
service nginx reload
crontab 에 등록
#mm hh day month week cmd
0 1 1 */2 * /root/lets-renew.sh #> dev/null 2>&1
// 2달에 한번씩~~