expiryCheck.sh 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/bash
  2. EXPIRATIONDAYS=90
  3. checkCertificate () {
  4. CERTIFICATE=$@
  5. STARTNOTIFICATIONDATE=$(date +%s)
  6. EXPIRYNOTIFICATIONDATE=$(($(date +%s) + (86400*${EXPIRATIONDAYS})))
  7. SUBJECT=$(openssl x509 -in "${CERTIFICATE}" -noout -text | grep "Subject:" | sed 's/^.*CN[ ]*=[ ]*\(.*\),.*$/\1/')
  8. STARTDATE=$(openssl x509 -in "${CERTIFICATE}" -noout -text | grep 'Not Before' | awk '{printf "%s %.2d %s %s\n",$3,$4,$6,$5}')
  9. STARTDATENUMERIC=$(date -d "${STARTDATE}" '+%s');
  10. EXPIRATIONDATE=$(openssl x509 -in "${CERTIFICATE}" -noout -text | grep 'Not After' | awk '{printf "%s %.2d %s %s\n",$4,$5,$7,$6}')
  11. EXPIRATIONDATENUMERIC=$(date -d "${EXPIRATIONDATE}" '+%s');
  12. if [ ${STARTNOTIFICATIONDATE} -lt ${STARTDATENUMERIC} ]
  13. then
  14. echo -e "\tOn ${STARTDATE}, the CERTIFICATE for \"${SUBJECT}\" will become valid"
  15. fi
  16. if [ ${EXPIRYNOTIFICATIONDATE} -gt ${EXPIRATIONDATENUMERIC} ]
  17. then
  18. echo -e "\tOn ${EXPIRATIONDATE}, the CERTIFICATE for \"${SUBJECT}\" will expire"
  19. fi
  20. }
  21. for DIRECTORY in ./*/
  22. do
  23. DIRECTORY=${DIRECTORY%*/}
  24. DIRECTORY=${DIRECTORY:2}
  25. if [ "${DIRECTORY}" != "openssl" ]; then
  26. echo "${DIRECTORY}:"
  27. cd "${DIRECTORY}"
  28. for CERTIFICATE in ./*.crt
  29. do
  30. if [[ -f "${CERTIFICATE}" ]]
  31. then
  32. checkCertificate ${CERTIFICATE}
  33. fi
  34. done
  35. cd - > /dev/null
  36. fi
  37. done