크론을 이용하여 무료 SSL 인증서 자동갱신

I. 목표

Let’s Encrypt에서 제공하고 있는 무료 SSL 인증서를 3개월에 한번씩 자동으로 갱신할수 있는 방법을 연구한다.

II. 연구 개발내용

1. 크론을 이용한 인증서 자동갱신

1) 인증서 만료일 확인방법

 certbot certificates

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

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Found the following certs:

  Certificate Name: odc.mbizok.com

    Domains: odc.mbizok.com

    Expiry Date: 2021-03-19 06:01:45+00:00 (VALID: 88 days)

    Certificate Path: /etc/letsencrypt/live/odc.mbizok.com/fullchain.pem

    Private Key Path: /etc/letsencrypt/live/odc.mbizok.com/privkey.pem

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

 

2) 크론에 등록 : 매월 19일 마다 01시에 갱신 처리하고 아파치를 재시작

crontab -e

0 1 19 * * /usr/bin/certbot renew –renew-hook=”sudo service apache2 restart”

 

 

2. 크론을 이용하여 서버인증서 생성

위에서 생성된 인증서를 이용하여 스프링부트에서 사용될 서버인증서를 주기적으로생성해놓는다.

0 1 19 * * /etc/letsencrypt/live/odc.mbizok.com/makeKeyStore.sh

아래는 makeKeyStore.sh으 내용으로 서버인증서를 /home/cinema/Service/Keystore 폴더에 생성한다.

 #!/bin/bash

# 자바에서 쓸수 있도록 keysore.p12로 변화

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out cinema.pkcs12 -name cinema -CAfile chain.pem -caname root -password pass:odckorea

mv cinema.pkcs12 /home/cinema/Service/Keystore

chown cinema:cinema /home/cinema/Service/Keystore/cinema.pkcs12

 

3. 스프링부트의 게이트웨이서버에 application.yml에서는 아래와 같이 참조할수 있게 하였다.

server:

port: 7001

ssl:

key-store : “file:/home/cinema/Service/Keystore/cinema.pkcs12”

key-store-type: PKCS12

key-store-password : “odckorea”

 

III. 결론

3달에 한번씩 인증서를 수동으로 업데이트 해야 되므로, 불편한점이 많았는데 자동으로 할수 있어 한결 마음이 편해졌다.

태그 , ,