expiryShow.sh 1.3 KB

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