revoke-full 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/sh
  2. # revoke a certificate, regenerate CRL,
  3. # and verify revocation
  4. CRL="crl.pem"
  5. RT="revoke-test.pem"
  6. if [ $# -ne 1 ]; then
  7. echo "usage: revoke-full <cert-name-base>";
  8. exit 1
  9. fi
  10. if [ "$KEY_DIR" ]; then
  11. cd "$KEY_DIR"
  12. rm -f "$RT"
  13. # set defaults
  14. export KEY_CN=""
  15. export KEY_OU=""
  16. export KEY_NAME=""
  17. # required due to hack in openssl.cnf that supports Subject Alternative Names
  18. export KEY_ALTNAMES=""
  19. # revoke key and generate a new CRL
  20. $OPENSSL ca -revoke "$1.crt" -config "$KEY_CONFIG"
  21. # generate a new CRL -- try to be compatible with
  22. # intermediate PKIs
  23. $OPENSSL ca -gencrl -out "$CRL" -config "$KEY_CONFIG"
  24. if [ -e export-ca.crt ]; then
  25. cat export-ca.crt "$CRL" >"$RT"
  26. else
  27. cat ca.crt "$CRL" >"$RT"
  28. fi
  29. # verify the revocation
  30. $OPENSSL verify -CAfile "$RT" -crl_check "$1.crt"
  31. else
  32. echo 'Please source the vars script first (i.e. "source ./vars")'
  33. echo 'Make sure you have edited it to reflect your configuration.'
  34. fi