차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:letsencrypt [2021/11/02 23:51] V_Ltech:letsencrypt [2022/11/22 15:25] (현재) – [갱신] V_L
줄 1: 줄 1:
 {{tag>letsencrypt ssl https 무료인증서 인증서 암호화 우분투 리눅스}} {{tag>letsencrypt ssl https 무료인증서 인증서 암호화 우분투 리눅스}}
 ====== Let's encrypt ====== ====== Let's encrypt ======
-  
  
 무료 [[SSL]] 서버인증서를 제공하는 https://letsencrypt.org 를 이용해보자. 무료 [[SSL]] 서버인증서를 제공하는 https://letsencrypt.org 를 이용해보자.
  
 {{https://letsencrypt.org/images/letsencrypt-logo-horizontal.svg}} https://letsencrypt.org {{https://letsencrypt.org/images/letsencrypt-logo-horizontal.svg}} https://letsencrypt.org
- 
  
 =====등록===== =====등록=====
 기존의 웹서버 설정을 변경하지 않는 ''standalone''으로 할 것이므로 ((자동기능이 있지만 멀티서버, 서브도메인 설정 등이 있으면 잘 안되더라)) 기존의 웹서버 설정을 변경하지 않는 ''standalone''으로 할 것이므로 ((자동기능이 있지만 멀티서버, 서브도메인 설정 등이 있으면 잘 안되더라))
-https://certbot.eff.org 에서 +https://certbot.eff.org 에서
  
-''none of above''  및 ''ubuntu'' 고르고 나오는 설명대로 진행하면 된다. +''none of above''  및 ''ubuntu'' 고르고 나오는 설명대로 진행하면 된다.
  
   sudo apt-get update   sudo apt-get update
줄 21: 줄 19:
    
 인증하는 동안 80 포트를 사용하기 때문에 잠시 인증하는 동안 80 포트를 사용하기 때문에 잠시
-[[nginx]] 웹서버를 꺼야 한다.+[[nginx]] 웹서버를 것이다 한다.
  
   sudo service nginx stop   sudo service nginx stop
줄 30: 줄 28:
  
 2번 선택 (standalone) 2번 선택 (standalone)
- 
  
 <file> <file>
줄 70: 줄 67:
  
    sudo certbot certificates    sudo certbot certificates
- 
- 
  
     Domains: vaslor.net      Domains: vaslor.net 
줄 84: 줄 79:
 3개월 마다 갱신을 해줘야 계속 작동된다. 3개월 마다 갱신을 해줘야 계속 작동된다.
  
-standalone 상태에서는+자동으로  
 +certbot은 매일 2회 갱신을 시도하는데, 갱신기한이 1개월 남았을 때만 실제로 갱신이 이루어지므로 
 +로그가 지저분하긴 하지만 그냥 둬도 된다. 
 + 
 +''/etc/cron.d/certbot'' 파일 참조. [[https://community.letsencrypt.org/t/why-is-certbot-attmepting-renewal-daily/37795|출처]] 참조. 
 + 
 +하루 두번은 불필요하다고 생각되면, 변경하자. 
 + 
 +매월 1일로 변경 
 +  0 0 1 * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew 
 + 
 +<del>standalone 상태에서는
 갱신 시 80포트를 사용하므로 웹서버를 잠시 정지시키고 해야한다.  갱신 시 80포트를 사용하므로 웹서버를 잠시 정지시키고 해야한다. 
   sudo certbot renew --pre-hook "service nginx stop" \   sudo certbot renew --pre-hook "service nginx stop" \
줄 90: 줄 96:
  
 [[crontab]]을 이용해서 60일마다 자동으로 해주면 좋다. [[crontab]]을 이용해서 60일마다 자동으로 해주면 좋다.
- 
  
   #2개월마다 3일 3시 33분   #2개월마다 3일 3시 33분
-  33 3 3 */2 * certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"+  33 3 3 */2 * certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"</del>
  
 서브도메인이 제거된 경우 [[https://community.letsencrypt.org/t/solved-remove-delete-subdomain-alternate-name-from-certificat/51191|참조]] 서브도메인이 제거된 경우 [[https://community.letsencrypt.org/t/solved-remove-delete-subdomain-alternate-name-from-certificat/51191|참조]]
줄 114: 줄 119:
         }         }
  
- # SSL +    # SSL 
-        ssl_certificate /etc/letsencrypt/live/vaslor.net/fullchain.pem; +        ssl_certificate /etc/letsencrypt/live/openwiki.kr/fullchain.pem; 
-        ssl_certificate_key /etc/letsencrypt/live/vaslor.net/privkey.pem; +        ssl_certificate_key /etc/letsencrypt/live/openwiki.kr/privkey.pem; 
-        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;   +        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  
         # Improve HTTPS performance with session resumption         # Improve HTTPS performance with session resumption
줄 127: 줄 132:
         ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';         ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
  
- include common.conf;+    include common.conf;
 } }
  
 +</file>
  
 +=====추가하기=====
 +서브도메인을 추가하기
 +
 +  sudo certbot
 +
 +원하는 도메인의 번호를 입력한다.
 +
 +<file>
 +Plugins selected: Authenticator nginx, Installer nginx
 +
 +Which names would you like to activate HTTPS for?
 +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 +6: openwiki.kr
 +7: vaslor.net
 +8: bb.vaslor.net
 +9: map.vaslor.net
 +10: monsterid.vaslor.net
 +11: plex.vaslor.net
 +12: tv.vaslor.net
 +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 +Select the appropriate numbers separated by commas and/or spaces, or leave input
 +blank to select all options shown (Enter 'c' to cancel): 10
 </file> </file>
 +
 +자동 redirect를 할 것이냐고 물어본다. 1 혹은 2 입력하면 됨.
  
 =====서버이전하기===== =====서버이전하기=====
줄 144: 줄 174:
   sudo chown -R $USER:$USER ~/letsencrypt   sudo chown -R $USER:$USER ~/letsencrypt
  
- +이제 [[tech:midnight_commander|]]의 ftp나 뭐 그런 것으로 대상 서버로 해당 폴더를 옮긴다.
-이제 [[tech:midnight_commander|]]의 ftp나 뭐 그런 것으로 대상 서버로 해당 폴더를 옮긴다. +
  
   # 대상 서버   # 대상 서버
줄 154: 줄 183:
 etc 폴더로 옮기고, root 권한을 먹여줌. etc 폴더로 옮기고, root 권한을 먹여줌.
  
-자세한 것은 +더 자세한 것은 
 [[https://dev-notes.eu/2016/12/moving-site-to-new-server-with-letsencrypt-certificates/|참조]] [[https://dev-notes.eu/2016/12/moving-site-to-new-server-with-letsencrypt-certificates/|참조]]
- 
  
 =====에러===== =====에러=====
줄 162: 줄 190:
  
 >sudo apt install python3-certbot-nginx >sudo apt install python3-certbot-nginx
 +
 +=====D3 문제=====
 +
 +Let’s Encrypt가 사용하는 DST Root CA X3 루트인증서는 2021년 9월에 만료.
 +
 +Android 7.1 이전 버전은 Let’s Encrypt의 인증서가 설치된 웹 사이트에 접속하기 위해서는 ISRG Root X1루트인증서가 등록되어 있는 Firefox 브라우저로는 접속 가능 ( Firefox 브라우저는 운영체제의 루트인증서 목록에 의존하지 않고 자체 루트인증서 목록을 사용 )
 +
 +내 컴퓨타가 해결되었는 지 확인해 볼 수 있는 사이트
 +
 +> https://valid-isrgrootx1.letsencrypt.org/
 +
 +> [[DisableRootAutoUpdate]]
 +