generate-jks.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #! /bin/sh
  2. set -ex
  3. function importPKCS() {
  4. dir=${SCRATCH_DIR:-_output}
  5. NODE_NAME=$1
  6. ks_pass=${KS_PASS:-kspass}
  7. ts_pass=${TS_PASS:-tspass}
  8. rm -rf $NODE_NAME
  9. keytool \
  10. -importkeystore \
  11. -srckeystore $NODE_NAME.pkcs12 \
  12. -srcstoretype PKCS12 \
  13. -srcstorepass pass \
  14. -deststorepass $ks_pass \
  15. -destkeypass $ks_pass \
  16. -destkeystore $dir/keystore.jks \
  17. -alias 1 \
  18. -destalias $NODE_NAME
  19. echo "Import back to keystore (including CA chain)"
  20. keytool \
  21. -import \
  22. -file $dir/ca.crt \
  23. -keystore $dir/keystore.jks \
  24. -storepass $ks_pass \
  25. -noprompt -alias sig-ca
  26. echo All done for $NODE_NAME
  27. }
  28. function createTruststore() {
  29. echo "Import CA to truststore for validating client certs"
  30. keytool \
  31. -import \
  32. -file $dir/ca.crt \
  33. -keystore $dir/truststore.jks \
  34. -storepass $ts_pass \
  35. -noprompt -alias sig-ca
  36. }
  37. dir="/opt/deploy/"
  38. SCRATCH_DIR=$dir
  39. admin_user='system.admin'
  40. if [[ ! -f $dir/system.admin.jks || -z "$(keytool -list -keystore $dir/system.admin.jks -storepass kspass | grep sig-ca)" ]]; then
  41. importPKCS "system.admin"
  42. mv $dir/keystore.jks $dir/system.admin.jks
  43. fi
  44. if [[ ! -f $dir/searchguard_node_key || -z "$(keytool -list -keystore $dir/searchguard_node_key -storepass kspass | grep sig-ca)" ]]; then
  45. importPKCS "elasticsearch"
  46. mv $dir/keystore.jks $dir/searchguard_node_key
  47. fi
  48. if [[ ! -f $dir/system.admin.jks || -z "$(keytool -list -keystore $dir/system.admin.jks -storepass kspass | grep sig-ca)" ]]; then
  49. importPKCS "logging-es"
  50. fi
  51. [ ! -f $dir/truststore.jks ] && createTruststore
  52. [ ! -f $dir/searchguard_node_truststore ] && cp $dir/truststore.jks $dir/searchguard_node_truststore
  53. # necessary so that the job knows it completed successfully
  54. exit 0