사전 정보
- 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 방식으로 인증서를 받을 예정이다.
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
기존 웹서비스 실행
정리
위 작업을 하나의 스크립트로 만들어 보았다.
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
아래와 같이 크론잡을 설정 해준다.
30 03 01 */3 * /opt/letsencrypt/letsencrypt-cron
There are comments.