무료 SSL 서버인증서를 제공하는 https://letsencrypt.org 를 이용해보자.
기존의 웹서버 설정을 변경하지 않는 standalone
으로 할 것이므로 1)
https://certbot.eff.org 에서
none of above
및 ubuntu
고르고 나오는 설명대로 진행하면 된다.
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 권한을 먹여줌.
자세한 것은 참조