사전 정보
- Web Service: Nginx
- Service port: 80(http) / 443(https)
- letsencrypt folder: /opt/letsencrypt
인증서 얻기
Client 다운로드
인증서를 얻기 위하여 별도의 letsencyrpt 클라이언트 프로그램을 다운 받아야 한다. 해당 클라이언트는 웹서비스를 하고 있는 대상 서버에 다운을 받는다.
cd /opt
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
사용하고 있는 웹서비스 종료 후 인증서 받기
인증서를 받기 위하여 자체적으로 혹은 기존 사용하고 있는 웹서비스를 이용하여 인증서를 받는다. 여기서는 기존 서비스를 이용하지않고 클라이언트에서 자체 지원하는 standalone 방식으로 인증서를 받을 예정이다.
sudo service nginx stop
letsencrypt-auto 이용하여 인증서 얻기
./letsencrypt-auto certonly --standalone -d www.haginara.net -d cloud.haginara.net -d blog.haginara.net -d wiki.haginara.net -d kanban.haginara.net -d git.haginara.net
인증서를 받은 후에는 아래와 같은 축하 메시지를 받게 된다.
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/www.haginara.net/fullchain.pem. Your cert
will expire on 2016-03-02. To obtain a new version of the
certificate in the future, simply run Let's Encrypt again.
- If like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
위 안내문에서 보듯이 /etc/letsencrypt/live 하위 폴더에 인증서가 위치하게 된다.
설정 파일 사용하여 인증서 얻기
위와 같이 파라미터를 이용하여 인증서를 받을수도 있지만 별도의 설장파일을 만들어 두고 사용 하여도된다.
cli.ini
rsa-key-size = 4096
domains = www.haginara.net, blog.haginara.net, wiki.haginara.net, git.haginara.net, git.haginara.net, cloud.haginara.net
authenticator = standalone
./letsencrypt-auto certonly --config cli.ini
Nginx 서비스에 인증서 적용
ssl_certificate /etc/letsencrypt/live/www.haginara.net/fullchain.pem
ssl_certificate_ke /etc/letsencrypt/live/www.haginara.net/privkey.pem
기존 웹서비스 실행
sudo service nginx start
정리
위 작업을 하나의 스크립트로 만들어 보았다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/bin/bash
INI_PATH=/opt/letsencrypt/cli.ini
NGINX_PID=/var/run/nginx.pid
service nginx stop
sleep 2
if [ -f $NGINX_PID ]; then
service nginx restart
else
cd /opt/letsencrypt
./letsencrypt-auto certonly --config $INI_PATH
service nginx start
fi
|
위 스크립트는 이후 인증서 갱신시 크론잡에서 호출 할 예정이다.
인증서 갱신
Let's Encrypt 인증서의 경우 만료기간이 90일이다. 따라서 매 90일 마다 인증서 갱신을 해주어야 한다.
인증서 갱신은 기존 인증서를 새로 발급 받는 절차와 동일하다 단지 이 작업을 90일마다(인증서 만료전) 실행 해 주기위하여 Cronjob으로 설정할 에정이다.
Cron-job
sudo crontab -e
아래와 같이 크론잡을 설정 해준다.
30 03 01 */3 * /opt/letsencrypt/letsencrypt-cron
Comments !