29 lines
655 B
Bash
29 lines
655 B
Bash
#!/bin/bash
|
|
# Zabbix External Script: Advanced SSL Check
|
|
# Usage: check_ssl_advanced.sh <hostname> <port>
|
|
|
|
SERVER=$1
|
|
PORT=${2:-443}
|
|
|
|
if [ -z "$SERVER" ]; then
|
|
echo "Usage: $0 <hostname> [port]"
|
|
exit 1
|
|
fi
|
|
|
|
# Calcular dias para expirar
|
|
END_DATE=$(echo | openssl s_client -servername "$SERVER" -connect "$SERVER:$PORT" 2>/dev/null | openssl x509 -noout -enddate)
|
|
|
|
if [ -z "$END_DATE" ]; then
|
|
echo "-1" # Error connecting
|
|
exit
|
|
fi
|
|
|
|
END_DATE_STR=${END_DATE#*=}
|
|
END_EPOCH=$(date +%s -d "$END_DATE_STR")
|
|
NOW_EPOCH=$(date +%s)
|
|
SECONDS_LEFT=$((END_EPOCH - NOW_EPOCH))
|
|
DAYS_LEFT=$((SECONDS_LEFT / 86400))
|
|
|
|
# Retorna número de dias
|
|
echo "$DAYS_LEFT"
|