리눅스(Ubuntu 기준) ssl 사설 인증서 자동갱신 구축하기
2023. 4. 27. 14:14ㆍ리눅스
반응형
ssl 사설인증서 갱신 처리하는 쉘 스크립트 생성
#!/bin/bash
CERT_PATH="/.ssl/example.com.cer" # 인증서 경로
KEY_PATH="/.ssl/example.com.key" # 인증서 키 경로
CSR_PATH="/.ssl/example.com.csr" # CSR 경로
# 인증서 생성날짜와 현재날짜 차이 계산
cert_expiry=$(openssl x509 -startdate -noout -in $CERT_PATH | cut -d'=' -f2-)
expiry_epoch=$(date +%s -d "${cert_expiry}")
today_epoch=$(date +%s)
diff=$(expr ${today_epoch} - ${expiry_epoch} )
days_left=$(expr ${diff} / 86400)
# 인증서 갱신 처리
if [ ${days_left} -ge 360 ]; then
# CSR 정보 설정
COUNTRY=KR
STATE=Seoul
LOCALITY=Seoul
ORG=Seoul
UNIT=paycoq
CN=paycoqocr.com
# CSR 생성
openssl req -new -newkey rsa:2048 -nodes -keyout ${KEY_PATH} \
-out ${CSR_PATH} \
-subj "/C=$COUNTRY/ST=$STATE/L=$LOCALITY/O=$ORG/OU=$UNIT/CN=$CN"
openssl x509 -req -days 365 -in ${CSR_PATH} -signkey ${KEY_PATH} -out ${CERT_PATH}
# 웹 서버를 재시작합니다.
sudo systemctl restart nginx
fi
sudo 명령어로 인증서 갱신 쉘 스크립트 실행시 비밀번호 묻지 않도록 처리
> sudo visudo
# 아래 내용 입력 후 저장
# 저장할땐 컨트롤 + x -> Y -> 엔터, vi 에디터 일 경우는 :wq
${로그인한 유저 계정} ALL=(ALL) NOPASSWD:${인증서 갱신 쉘 스크립트 경로}
Crontab 설치
# cron 설치
sudo apt update -y
sudo apt install -y cron
# cron 시작
sudo service cron start
# cron systemctl 활성화
sudo systemctl enable cron.service
# cron systemctl 등록 확인
sudo systemctl list-unit-files | grep cron
sudo service cron status
Crontab 배치등록
> crontab -e
# cron 에디터에 아래 내용 입력
# 새벽 1시마다 인증서 갱신 쉘 스크립트가 실행되도록 설정
0 1 * * * sudo /home/paycoq/WAS/ocr/script/batch/renewCert.sh
반응형
'리눅스' 카테고리의 다른 글
우분투 설치 시 그래픽 문제 해결을 위한 부팅 옵션 수정 방법 (0) | 2023.08.23 |
---|---|
openssl 인증서 자동갱신 쉡 스크립트 만들기 (0) | 2023.04.26 |
[리눅스] zsh 세팅 (0) | 2022.11.21 |
[리눅스] yum 관련 명령어 (0) | 2022.11.21 |
[리눅스] mariadb 백업처리 (1) | 2022.01.27 |