728x90
반응형
아래 스크립트는 도메인,포트 형식의 목록을 사용하여 SSL 인증서의 만료일자를 확인하고, 갱신일이 30일 이하인 경우에 대한 정보를 Mattermost로 전송하도록 작성하였습니다.
#!/bin/bash
# 도메인과 포트 목록 (도메인,포트 형식으로 정의)
declare -A domains
domains["www.naver.com"]="443"
domains["example.com"]="443"
domains["google.com"]="443"
# 각 도메인,포트별로 SSL 인증서 정보를 가져오는 함수 정의
get_ssl_info() {
local domain="$1"
local port="$2"
local expiry_date
expiry_date=$(openssl s_client -connect "${domain}:${port}" -showcerts </dev/null 2>/dev/null | openssl x509 -noout -dates | grep "notAfter" | cut -d= -f2)
echo "$expiry_date"
}
# 만료까지 남은 일수를 계산하는 함수 정의
days_until_expiration() {
local expiry_date="$1"
local current_date
current_date=$(date +%s)
local expiry_unix
expiry_unix=$(date -d "$expiry_date" +%s)
local remaining=$((expiry_unix - current_date))
echo "$((remaining / 86400))" # 일(day)로 변환
}
# 갱신일이 30일 이하인 도메인들을 문자열로 조합
message=""
for domain in "${!domains[@]}"; do
port=${domains[$domain]}
expiry_date=$(get_ssl_info "$domain" "$port")
days_remaining=$(days_until_expiration "$expiry_date")
if ((days_remaining <= 30)); then
message+="도메인: $domain, 포트: $port, 만료일: $expiry_date, 남은 일수: $days_remaining\n"
fi
done
# Mattermost API 호출 (여기서는 예시로 출력만 함)
# mattermost_url="https://your-mattermost-server.com/api/v4/posts"
# mattermost_token="your-mattermost-token"
# curl -X POST -H "Authorization: Bearer $mattermost_token" -d "message=$message" "$mattermost_url"
# 결과 출력
echo -e "$message"
위 스크립트는 도메인과 포트를 쉼표로 구분하여 사용합니다. 실제 Mattermost 서버 정보와 토큰을 사용하여 호출하시면 됩니다. 필요한 추가 작업이 있으시면 알려주세요!
728x90
반응형
LIST
'Linux' 카테고리의 다른 글
[Linux] sftp sshd_config 에서 match 로 user, group 설정 방법 (1) | 2024.05.13 |
---|---|
[Linux] nc 명령어로 기관 통신 모니터링 스크립트 (1) | 2024.05.02 |
[Linux] 리눅스에서 <,> 표준 입력,출력 리디렉션 명령어 사용법 (1) | 2024.04.29 |
[Linux] envsubst 명령어 사용 방법 (환경 변수 치환) (1) | 2024.04.25 |
[Linux] nohup 과 & 차이점 및 사용법 (0) | 2024.02.02 |