|
1 | 1 | #!/bin/bash
|
2 | 2 |
|
3 |
| -#cd "$( dirname "${BASH_SOURCE[0]}" )/.." |
4 |
| - |
5 |
| -set -vx |
6 |
| - |
7 | 3 | cd "$(dirname "${BASH_SOURCE[0]}")/.."
|
8 | 4 | . bin/util.sh
|
9 | 5 |
|
10 | 6 | function createKeyStore() {
|
11 | 7 | keystorefile="$1"
|
12 |
| - KEYTOOL_OPTS="-keystore ${keystorefile} -storepass radarbase -keypass radarbase $KEYSTORE_INIT_OPTS" |
| 8 | + keytoolOpts=(-keystore "${keystorefile}" -storepass radarbase -keypass radarbase $KEYSTORE_OPTS) |
13 | 9 |
|
14 |
| - if ! keytool -list $KEYTOOL_OPTS -alias radarbase-managementportal-ec >/dev/null 2>/dev/null; then |
15 |
| - KEYTOOL_CREATE_OPTS="-genkeypair -alias radarbase-managementportal-ec -keyalg EC -groupname secp256r1 -sigalg SHA256withECDSA -storetype PKCS12 $KEYSTORE_CREATE_OPTS" |
16 |
| - if [ -n "${MANAGEMENTPORTAL_KEY_DNAME}" ]; then |
17 |
| - KEYTOOL_CREATE_OPTS="$KEYTOOL_CREATE_OPTS -dname ${MANAGEMENTPORTAL_KEY_DNAME}" |
18 |
| - fi |
| 10 | + if ! keytool -list "${keytoolOpts[@]}" -alias radarbase-managementportal-ec >/dev/null 2>/dev/null; then |
19 | 11 | echo "--> Generating keystore to hold EC keypair for JWT signing"
|
20 |
| - keytool $KEYTOOL_CREATE_OPTS $KEYTOOL_OPTS |
| 12 | + createOpts=(-genkeypair -validity 36500 -alias radarbase-managementportal-ec -keyalg EC -sigalg SHA256withECDSA -storetype PKCS12 $KEYSTORE_CREATE_OPTS) |
| 13 | + if keytool -genkeypair -help 2>&1 | grep -q -- -groupname; then |
| 14 | + # Java 8 or later |
| 15 | + createOpts+=(-groupname secp256r1) |
| 16 | + else |
| 17 | + # Java 7 |
| 18 | + createOpts+=(-keysize 256) |
| 19 | + fi |
| 20 | + if [ -n "${DNAME}" ]; then |
| 21 | + createOpts+=(-dname "${DNAME}") |
| 22 | + fi |
| 23 | + keytool "${createOpts[@]}" "${keytoolOpts[@]}" |
| 24 | + echo |
21 | 25 | else
|
22 | 26 | echo "--> ECDSA keypair for signing JWTs already exists. Not creating a new one."
|
23 | 27 | fi
|
24 | 28 |
|
25 |
| - if ! keytool -list $KEYTOOL_OPTS -alias selfsigned >/dev/null 2>/dev/null; then |
26 |
| - KEYTOOL_CREATE_OPTS="-genkeypair -alias selfsigned -keyalg RSA -keysize 4096 -storetype PKCS12 $KEYSTORE_CREATE_OPTS" |
27 |
| - if [ -n "${MANAGEMENTPORTAL_KEY_DNAME}" ]; then |
28 |
| - KEYTOOL_CREATE_OPTS="$KEYTOOL_CREATE_OPTS -dname ${MANAGEMENTPORTAL_KEY_DNAME}" |
29 |
| - fi |
| 29 | + if ! keytool -list "${keytoolOpts[@]}" -alias selfsigned >/dev/null 2>/dev/null; then |
30 | 30 | echo "--> Generating keystore to hold RSA keypair for JWT signing"
|
31 |
| - keytool $KEYTOOL_CREATE_OPTS $KEYTOOL_OPTS |
| 31 | + createOpts=(-genkeypair -validity 36500 -alias selfsigned -keyalg RSA -keysize 4096 -storetype PKCS12 $KEYSTORE_CREATE_OPTS) |
| 32 | + if [ -n "${DNAME}" ]; then |
| 33 | + createOpts+=(-dname "${DNAME}") |
| 34 | + fi |
| 35 | + keytool "${createOpts[@]}" "${keytoolOpts[@]}" |
| 36 | + echo |
32 | 37 | else
|
33 | 38 | echo "--> RSA keypair for signing JWTs already exists. Not creating a new one."
|
34 | 39 | fi
|
35 | 40 |
|
| 41 | + if [ ! -e "${keystorefile}" ]; then |
| 42 | + >&2 echo "FAILED TO CREATE KEYSTORE FILE $keystorefile" |
| 43 | + exit 1 |
| 44 | + fi |
| 45 | + |
| 46 | + if ! keytool -list "${keytoolOpts[@]}" -alias radarbase-managementportal-ec >/dev/null 2>/dev/null; then |
| 47 | + >&2 echo "FAILED TO CREATE ECDSA KEY radarbase-managementportal-ec in $keystorefile. Please try again." |
| 48 | + rm "${keystorefile}" |
| 49 | + exit 1 |
| 50 | + fi |
| 51 | + |
| 52 | + if ! keytool -list "${keytoolOpts[@]}" -alias selfsigned >/dev/null 2>/dev/null; then |
| 53 | + >&2 echo "FAILED TO CREATE RSA KEY selfsigned in $keystorefile. Please try again." |
| 54 | + rm "${keystorefile}" |
| 55 | + exit 1 |
| 56 | + fi |
| 57 | + |
36 | 58 | chmod 400 "${keystorefile}"
|
37 | 59 | }
|
38 | 60 |
|
|
0 commit comments