[백업글]Let’s Encrypt를 이용한 무료 SSL 사용

sudo apt-get update 
sudo apt-get install letsencrypt

 

각 사이트 별 conf.d 설정에 추가 :

location ~ /.well-known { 
                allow all; 
} 
 
location ~ /.well-known/acme-challenge { 
 
}

 

아마 클라우드플레어 사용중이라면 pause 하고 하는 것이 좋을 것.

sudo letsencrypt certonly -a webroot --webroot-path=경로 -d 사이트명 -d www.사이트명

실패시

  1.  경로 확인 (conf.d 안의 root)
  2.  위에 location에 빼먹은 것 없는지 확인
  3.  클라우드 플레어에서 pause 상태 확인
  4.  dns 확인 (ping 등)

 

성공시

dhparam 생성

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

 

conf에 인증서 추가

ssl_certificate /etc/letsencrypt/live/도메인/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/도메인/privkey.pem;

 

SSL 따로 설정하는 것 추가 (HSTS등!!!)

sudo nano /etc/nginx/snippets/ssl-params.conf

 

ssl-params.conf

# from https://cipherli.st/ 
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html 
 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
ssl_prefer_server_ciphers on; 
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; 
ssl_ecdh_curve secp384r1; 
ssl_session_cache shared:SSL:10m; 
ssl_session_tickets off; 
ssl_stapling on; 
ssl_stapling_verify on; 
resolver 8.8.8.8 8.8.4.4 valid=300s; 
resolver_timeout 5s; 
# Disable preloading HSTS for now.  You can use the commented out header line that includes 
# the "preload" directive if you understand the implications. 
#add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; 
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains"; 
add_header X-Frame-Options DENY; 
add_header X-Content-Type-Options nosniff; 
 
ssl_dhparam /etc/ssl/certs/dhparam.pem;

 

conf에 추가

include snippets/ssl-params.conf;

 

이후:

80번포트 443 ssl http2; 로 바꾸기

ufw 포트 점검

포트포워드 점검

클라우드플레어 설정 정상화 (Full strict 등)