| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #!/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}
|