add-to-keystore 984 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/bash
  2. set -euo pipefail
  3. KEYSTORE="${1:-}"
  4. if [[ -z "$KEYSTORE" ]]; then
  5. echo "Usage: $0 <keystore.p12>" >&2
  6. exit 1
  7. fi
  8. PASSWORD="password"
  9. # Set up temp workspace
  10. WORKDIR=$(mktemp -d)
  11. trap "rm -rf $WORKDIR" EXIT
  12. # Read input tar archive from stdin
  13. tar -C "$WORKDIR" -xf -
  14. ALIAS=$(cat "$WORKDIR/alias")
  15. CERT="$WORKDIR/cert.pem"
  16. KEY="$WORKDIR/key.pem"
  17. CHAIN="$WORKDIR/chain.pem"
  18. # Convert to PKCS#12 bundle
  19. PKCS12="$WORKDIR/temp.p12"
  20. openssl pkcs12 -export \
  21. -inkey "$KEY" \
  22. -in "$CERT" \
  23. -certfile "$CHAIN" \
  24. -name "$ALIAS" \
  25. -out "$PKCS12" \
  26. -passout pass:$PASSWORD
  27. # If alias exists, delete it
  28. if [[ -f "$KEYSTORE" ]]; then
  29. keytool -delete -alias "$ALIAS" -keystore "$KEYSTORE" \
  30. -storepass "$PASSWORD" -storetype PKCS12 || true
  31. fi
  32. # Import new entry
  33. keytool -importkeystore \
  34. -destkeystore "$KEYSTORE" -deststoretype PKCS12 -deststorepass "$PASSWORD" \
  35. -srckeystore "$PKCS12" -srcstoretype PKCS12 -srcstorepass "$PASSWORD" \
  36. -alias "$ALIAS"