인증서 갱신 자동화

sungyong·2020년 5월 12일
0

tomcat 서비스를 docker-compose로 이용하고 있다.
인증서는 let's encrypt로 발급받은 3개월짜리 인증서를 volume mount로 하고 있다.

3개월마다 수동으로 하던 갱신을 이제야 자동화해본다. crontab에 등록하는 것이다.

내 tomcat docker-compose 는 이렇게 생겼다.

sungyong:/opt/tomcat$ cat docker-compose.yml
version: '2'

services:
  tomcat:
    image: 'bitnami/tomcat:9.0'
    ports:
      - '8080'
    environment:
      - TOMCAT_HTTP_PORT_NUMBER=8080
      - TOMCAT_USERNAME=sungyong
      - TOMCAT_PASSWORD=helele
      - TOMCAT_ALLOW_REMOTE_MANAGEMENT=1
    volumes:
      - ./tomcat_data:/bitnami
  nginx:
    image: 'bitnami/nginx:1.16'
    ports:
      - '80:8080'
      - '443:8443'
    volumes:
      - ./my_server_block.conf:/opt/bitnami/nginx/conf/server_blocks/my_server_block.conf:ro
      - /opt/bitnami/letsencrypt/certificates/helele.key://opt/bitnami/nginx/conf/server.key:ro
      - /opt/bitnami/letsencrypt/certificates/helele.crt://opt/bitnami/nginx/conf/server.crt:ro
    

갱신 스크립트를 아래와 같은 만들었다.

sungyong:/opt/bitnami/letsencrypt$ cat renew_ssl.sh
cd /opt/tomcat/
docker-compose stop
/opt/bitnami/letsencrypt/lego --tls --email="sungyong@gmail.com" --domains="helele --path="/opt/bitnami/letsencrypt" renew --days 90
docker-compose up -d

그리고 crontab에는 아래와 같이 등록

sungyong:/opt/bitnami/letsencrypt$ sudo crontab -l

# renew ssl every 1st day of month
0 3 1 * * /opt/bitnami/letsencrypt/renew_ssl.sh

이로써 귀찮은 갱신작업 하나 줄여본다.

profile
개발자입니다

0개의 댓글