문서 편집

Let's encrypt

무료 SSL 서버인증서를 제공하는 https://letsencrypt.org 를 이용해보자.

https://letsencrypt.org

등록

기존의 웹서버 설정을 변경하지 않는 standalone으로 할 것이므로 1) https://certbot.eff.org 에서

none of aboveubuntu 고르고 나오는 설명대로 진행하면 된다.

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 certbot 

인증하는 동안 80 포트를 사용하기 때문에 잠시 Nginx (엔진엑스) 웹서버를 꺼야 한다.

sudo service nginx stop

인증 작업…

sudo certbot certonly

2번 선택 (standalone)

Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate with the ACME CA?
-------------------------------------------------------------------------------
1: Nginx Web Server plugin - Alpha (nginx)
2: Spin up a temporary webserver (standalone)
3: Place files in webroot directory (webroot)
-------------------------------------------------------------------------------
Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 2
Plugins selected: Authenticator standalone, Installer None

사용할 도메인 입력… 이미 dns에 등록된 주소만 되므로 현재 사용중인 주소만 입력한다.

Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel): vaslor.net io.vaslor.net chat.vaslor.net bb.vaslor.net f4map.vaslor.net news.vaslor.net map.vaslor.net
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for vaslor.net
http-01 challenge for io.vaslor.net
http-01 challenge for chat.vaslor.net
http-01 challenge for bb.vaslor.net
http-01 challenge for f4map.vaslor.net
Waiting for verification...
Cleaning up challenges

위치는 /etc/letsencrypt/live/ 에 도메인 이름의 서브폴더에 저장된다.

정보보기

등록된 도메인과 인증서의 경로를 표시해준다.

 sudo certbot certificates
  Domains: vaslor.net 
  bb.vaslor.net 
  chat.vaslor.net 
  f4map.vaslor.net 
  io.vaslor.net 
  map.vaslor.net 
  news.vaslor.net

갱신

3개월 마다 갱신을 해줘야 계속 작동된다.

standalone 상태에서는 갱신 시 80포트를 사용하므로 웹서버를 잠시 정지시키고 해야한다.

sudo certbot renew --pre-hook "service nginx stop" \
 --post-hook "service nginx start"

Crontab (Linux)을 이용해서 60일마다 자동으로 해주면 좋다.

서브도메인이 제거된 경우 참조

####### f4map.vaslor.net #######
server {
        listen 80;
        listen 443;  # 같이 해도 됨~!
        root /home/www/f4map;
        server_name f4map.vaslor.net;
        location / {
                try_files $uri $uri/ index.php;
        }
        # 브라우져 캐쉬 세팅
        location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
            expires 365d;
            access_log off;
        }
 
	# SSL
        ssl on;
        ssl_certificate /etc/letsencrypt/live/vaslor.net/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/vaslor.net/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  #센 것들만
 
        # Improve HTTPS performance with session resumption
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 5m;
 
        # Enable server-side protection against BEAST attacks
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
 
	include common.conf;
}

서버이전하기

이전할 서버에도 설치 해주고, 인증파일의 이동은 기본적으로 /etc/letsencript 의 내용을 복사해 넣으면 된다. 다만, 폴더 권한이 root:root 이므로 약간의 트릭이 필요하다.

임시 거처로 옮긴 다음 권한을 바꿔준다.

# 원본 서버
# Note -p is added
sudo rsync -az -p --progress /etc/letsencrypt ~/
sudo chown -R $USER:$USER ~/letsencrypt

이제 Midnight Commander (MC)의 ftp나 뭐 그런 것으로 대상 서버로 해당 폴더를 옮긴다.

# 대상 서버
# Lack of trailing slash on source will cause the directory to be created on the destination directory
sudo rsync -az --progress ~/letsencrypt /etc
sudo chown -R root:root /etc/letsencrypt

etc 폴더로 옮기고, root 권한을 먹여줌.

자세한 것은 참조

1)
자동기능이 있지만 멀티서버, 서브도메인 설정 등이 있으면 잘 안되더라

연결문서

CC Attribution-Noncommercial-Share Alike 4.0 International 별도로 명시하지 않을 경우, 이 페이지의 내용은 다음 라이선스에 따라 사용할 수 있습니다: CC Attribution-Noncommercial-Share Alike 4.0 International
4.9 KB tech/letsencrypt.txt · 마지막으로 수정됨 2021/01/19 15:22 저자 1.238.85.38 V_L