keytool.cheat 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. % java keytool, certificate, encryption
  2. ## Creating
  3. # Generate a Java keystore and key pair
  4. keytool -genkey -alias <ALIAS> -keyalg RSA -keystore <OUTPUT_JKS> -keysize <RSA_LENGTH>
  5. # Generate a certificate signing request (CSR) for an existing Java keystore
  6. keytool -certreq -alias <ALIAS> -keystore <INPUT_JKS> -file <OUTPUT_CSR>
  7. # Import a root or intermediate CA certificate to an existing Java keystore
  8. keytool -import -trustcacerts -alias root -file <INPUT_CRT> -keystore <INPUT_JKS>
  9. # Import a signed primary certificate to an existing Java keystore
  10. keytool -import -trustcacerts -alias <ALIAS> -file <INPUT_CRT> -keystore <INPUT_JKS>
  11. # Generate a keystore and self-signed certificate
  12. keytool -genkey -keyalg RSA -alias <ALIAS> -keystore <OUTPUT_JKS> -storepass <PASSWORD> -validity <VALIDITY> -keysize <RSA_LENGTH>
  13. ## Verifying
  14. # Check a stand-alone certificate
  15. keytool -printcert -v -file <INPUT_CRT>
  16. # Check which certificates are in a Java keystore
  17. keytool -list -v -keystore <INPUT_JKS>
  18. # Check a particular keystore entry using an alias
  19. keytool -list -v -keystore <INPUT_JKS> -alias <ALIAS>
  20. ## Other
  21. # Remove a certificate from a keystore
  22. keytool -delete -alias <ALIAS> -keystore <INPUT_JKS>
  23. # Change the password of a keystore
  24. keytool -storepasswd -keystore <INPUT_JKS> -new <NEW_PASSWORD>
  25. # Export a certificate from a keystore
  26. keytool -export -alias <ALIAS> -file <OUTPUT_CRT> -keystore <INPUT_JKS>
  27. # List the trusted CA Certs from the default Java Trusted Certs Keystore
  28. keytool -list -v -keystore $JAVA_HOME/jre/lib/security/cacerts
  29. # Import New Certificate Authority into the default Java Trusted Certs Keystore
  30. keytool -import -trustcacerts -file <INPUT_PEM> -alias <ALIAS> -keystore $JAVA_HOME/jre/lib/security/cacerts
  31. # Sensible/common default alternatives
  32. $ VALIDITY: printf "DAYS\tCOMMENT\n1\ta day\n30\ta month\n365\ta year\n730\ttwo years" --- --column 1 --headers 1
  33. $ RSA_LENGTH: printf "KEY LENGTH\tCOMMENT\n2048\t\tDefault\n4096\t\tBetter\n8192\t\tSlow?" --- --column 1 --headers 1
  34. # Attempt to find files with the appropriate endings, default to everything.
  35. $ INPUT_CRT: ls -a | grep -e "\(.crt\|.cer\|.der\)" || ls -a
  36. $ INPUT_PEM: ls -a | grep -e "\(.pem\)" || ls -a
  37. $ INPUT_JKS: ls -a | grep -e "\(.jks\)" || ls -a