시놀로지 NAS에 GitLab을 셋팅하고 Let's Encrypt 인증서로 SSL 설정까지 마쳤다면 문제가 하나 있다.
- Let's Encrypt 인증서의 유효 기간이 90일로 너무 짧다. (유료 인증서의 경우 1년~10년까지 가능)
- 시놀로지 NAS가 자동으로 갱신해 준 인증서를 매번 일정에 맞춰서 재설정하기는 번거롭다.
가장 좋은 방법은 시놀로지 NAS의 자동 스케줄러 기능을 통해 인증서 갱신을 자동화 하는 것이다.
실제 Let's Encrypt의 권고 사항이기도 하다.
본문은 아래 내용을 참고하여 작성하였다.
인증서 자동 갱신
GitLab에 인증서 적용하는 방법은 아래 포스팅을 참고한다.
시놀로지 NAS에서 Let's Encrypt 인증서를 자동 갱신하지만, GitLab에 자동 적용되지는 않는다.
따라서 아래와 같은 스크립트를 이용해야 한다.
시놀로지 NAS에 스케줄러 추가
제어판 → 시스템 → 작업 스케줄러 로 이동한다.
생성 버튼 우측의 화살표를 클릭하고 예약된 작업 → 사용자 정의 스크립트를 선택한다.
일반 탭에서 '작업' 부분에 스크립트의 이름을 지정한다. (ex. GitLab-Cert-Copy)
인증서 자동 갱신 코드 적용
작업 설정 탭을 선택하고 사용자 정의 스크립트 부분에 아래 코드를 추가한다.
#VARIABLES
ID=""
#/usr/syno/bin/synopkg stop Docker-GitLab
# 시놀로지 NAS의 인증서 저장 경로
cd /usr/syno/etc/certificate/_archive/${ID}
SYNOLOGY_CERT=$(sudo openssl x509 -checkend 0 -in fullchain.pem)
# GITLAB 컨테이너와 공유한 볼륨 폴더 경로
GITLAB_CERT=$(openssl x509 -checkend 0 -in /volume1/docker/gitlab/gitlab/certs/gitlab.crt)
echo "synology cert status: ${SYNOLOGY_CERT}"
echo "gitLab cert status: ${GITLAB_CERT}"
# GitLab에 적용 된 인증서와 시놀로지 NAS의 인증서가 다른 경우
if [ "${SYNOLOGY_CERT}" != "${GITLAB_CERT}" ]
then
echo "Action Required"
# 갱신 된 시놀로지 NAS의 인증서를 GitLab의 인증서로 변환
sudo \cp -f privkey.pem /volume1/docker/gitlab/gitlab/certs/gitlab.key;
sudo \cp -f fullchain.pem /volume1/docker/gitlab/gitlab/certs/gitlab.crt;
# GitLab 컨테이너 재시작
echo "GitLab restarting.."
/usr/syno/bin/synopkg restart Docker-GitLab
# GitLab에 적용 된 인증서와 시놀로지 NAS의 인증서가 동일한 경우
else
echo "no action required."
fi
echo "done."
ID 부분의 값을 입력해야 하는데 아래 포스팅의 시놀로지에 저장 된 인증서 확인 부분을 참고한다.
해당 경로에서 확인되는 인증서 경로의 폴더명 (6자리 문자열)을 넣어준다.
실행 주기 설정
위의 스크립트가 실행 될 주기를 설정한다.
인증서 갱신 주기에 맞춰서 설정해도 되지만, 계산하기 귀찮아서 하루에 1번씩 새벽 4시에 실행되도록 설정했다.
스크립트의 조건문에 따라 시놀로지 NAS의 인증서가 갱신되면 GitLab 인증서도 새로운 인증서로 변경된다.
위의 방법을 응용하면 NAS에 Docker로 실행 중인 다른 서비스에도 적용할 수 있을 것으로 판단된다.
물론 스크립트 코드 수정은 약간 해야 한다.
'::: IT인터넷 :::' 카테고리의 다른 글
Nexus3 설치 후 초기 설정 (0) | 2021.06.17 |
---|---|
시놀로지 NAS에 Nexus3 구축하기 (0) | 2021.06.16 |
시놀로지 NAS에서 GitLab 설정 방법 (4) | 2021.06.10 |
시놀로지 NAS Let's Encrypt 인증서 발급 받기 (4) | 2021.06.08 |
블루투스 키보드가 키패드로 인식되는 경우 (0) | 2021.06.05 |