Files
openssl_scripts/expiryCheck.sh
T
2021-10-20 15:15:26 +02:00

51 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
EXPIRATIONDAYS=90
checkCertificate () {
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
echo -e "\tOn ${STARTDATE}, the Certificate for \"${SUBJECT}\" will become valid"
fi
if [ ${EXPIRYNOTIFICATIONDATE} -gt ${EXPIRATIONDATENUMERIC} ]
then
echo -e "\tOn ${EXPIRATIONDATE}, the Certificate for \"${SUBJECT}\" will expire"
fi
}
for DIRECTORY in ./*/
do
DIRECTORY=${DIRECTORY%*/}
DIRECTORY=${DIRECTORY:2}
if [ "${DIRECTORY}" != "openssl" ]; then
echo "${DIRECTORY}:"
cd "${DIRECTORY}"
for CERTIFICATE in ./*.crt
do
if [[ -f "${CERTIFICATE}" ]]
then
checkCertificate ${CERTIFICATE}
fi
done
cd - > /dev/null
fi
done