69 lines
1.6 KiB
Bash
Executable File
69 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
EXPIRATIONDAYS=14
|
|
|
|
OUTPUTBUFFER=""
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd -P )"
|
|
cd ${DIR}
|
|
|
|
checkCertificate () {
|
|
OUTPUT=""
|
|
CERTIFICATE=$@
|
|
|
|
STARTNOTIFICATIONDATE=$(date +%s)
|
|
EXPIRYNOTIFICATIONDATE=$(($(date +%s) + (86400*${EXPIRATIONDAYS})))
|
|
|
|
SUBJECT=$(openssl x509 -in "${CERTIFICATE}" -noout -text | grep "Subject:" | sed 's/^.*CN[ ]*=[ ]*\([^,]*\).*$/\1/')
|
|
|
|
STARTDATE=$(openssl x509 -in "${CERTIFICATE}" -noout -text | grep 'Not Before' | awk '{printf "%s %.2d %s %s\n",$3,$4,$6,$5}')
|
|
STARTDATENUMERIC=$(date -d "${STARTDATE}" '+%s');
|
|
|
|
EXPIRATIONDATE=$(openssl x509 -in "${CERTIFICATE}" -noout -text | grep 'Not After' | awk '{printf "%s %.2d %s %s\n",$4,$5,$7,$6}')
|
|
EXPIRATIONDATENUMERIC=$(date -d "${EXPIRATIONDATE}" '+%s');
|
|
|
|
if [ ${STARTNOTIFICATIONDATE} -lt ${STARTDATENUMERIC} ]
|
|
then
|
|
WARNING=true
|
|
OUTPUT="\tOn ${STARTDATE}, the Certificate for \"${SUBJECT}\" will become valid\n"
|
|
fi
|
|
|
|
if [ ${EXPIRYNOTIFICATIONDATE} -gt ${EXPIRATIONDATENUMERIC} ]
|
|
then
|
|
WARNING=true
|
|
OUTPUT="\tOn ${EXPIRATIONDATE}, the Certificate for \"${SUBJECT}\" will expire\n"
|
|
fi
|
|
}
|
|
|
|
for DIRECTORY in ./*/
|
|
do
|
|
DIRECTORY=${DIRECTORY%*/}
|
|
DIRECTORY=${DIRECTORY:2}
|
|
|
|
if [ "${DIRECTORY}" != "openssl" ]; then
|
|
TEMPORARYBUFFER=""
|
|
cd "${DIRECTORY}"
|
|
|
|
for CERTIFICATE in ./*.crt
|
|
do
|
|
WARNING=false
|
|
if [[ -f "${CERTIFICATE}" ]]
|
|
then
|
|
checkCertificate ${CERTIFICATE}
|
|
if [ "${WARNING}" = true ]; then
|
|
TEMPORARYBUFFER+=${OUTPUT}
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ ! -z "${TEMPORARYBUFFER}" ]; then
|
|
OUTPUTBUFFER+="${DIRECTORY}:\n"
|
|
OUTPUTBUFFER+=${TEMPORARYBUFFER}
|
|
fi
|
|
|
|
cd - > /dev/null
|
|
fi
|
|
done
|
|
|
|
echo -e ${OUTPUTBUFFER}
|
|
|