Commit 3f72bc4b54cf7713f87bde3dcf1fa36b40ef3ce8

Authored by Sergey Matvienko
Committed by Andrew Shvayka
1 parent c5c8fbd3

SSL (RSA) *.keygen.sh tool upgraded. Added PKCS8 pem format. Tested and fixed ke…

…ygen.properties to run with no warning. Removed 'mqtt' prefix from output files to fix confusion when applying keys for other protocols.
@@ -44,7 +44,8 @@ done @@ -44,7 +44,8 @@ done
44 44
45 . $PROPERTIES_FILE 45 . $PROPERTIES_FILE
46 46
47 -if [ -f $CLIENT_FILE_PREFIX.jks ] || [ -f $CLIENT_FILE_PREFIX.pub.pem ] || [ -f $CLIENT_FILE_PREFIX.nopass.pem ] || [ -f $CLIENT_FILE_PREFIX.pem ] || [ -f $CLIENT_FILE_PREFIX.p12 ]; 47 +if [ -f $CLIENT_FILE_PREFIX.jks ] || [ -f $CLIENT_FILE_PREFIX.pub.pem ] || [ -f $CLIENT_FILE_PREFIX.nopass.pem ] || \
  48 + [ -f $CLIENT_FILE_PREFIX.pem ] || [ -f $CLIENT_FILE_PREFIX.p12 ] || [ -f $CLIENT_FILE_PREFIX.pk8.pem ];
48 then 49 then
49 while : 50 while :
50 do 51 do
@@ -62,6 +63,7 @@ while : @@ -62,6 +63,7 @@ while :
62 rm -rf $CLIENT_FILE_PREFIX.nopass.pem 63 rm -rf $CLIENT_FILE_PREFIX.nopass.pem
63 rm -rf $CLIENT_FILE_PREFIX.pem 64 rm -rf $CLIENT_FILE_PREFIX.pem
64 rm -rf $CLIENT_FILE_PREFIX.p12 65 rm -rf $CLIENT_FILE_PREFIX.p12
  66 + rm -rf $CLIENT_FILE_PREFIX.pk8.pem
65 break; 67 break;
66 ;; 68 ;;
67 *) echo "Please reply 'yes' or 'no'" 69 *) echo "Please reply 'yes' or 'no'"
@@ -84,6 +86,8 @@ if [ -z "$OPENSSL_CMD" ]; then @@ -84,6 +86,8 @@ if [ -z "$OPENSSL_CMD" ]; then
84 exit 0 86 exit 0
85 fi 87 fi
86 88
  89 +echo "INFO: your hostname is $(hostname)"
  90 +echo "INFO: your CN (domain suffix) for key is $DOMAIN_SUFFIX"
87 echo "Generating SSL Key Pair..." 91 echo "Generating SSL Key Pair..."
88 92
89 keytool -genkeypair -v \ 93 keytool -genkeypair -v \
@@ -112,7 +116,15 @@ echo "Converting pkcs12 to pem" @@ -112,7 +116,15 @@ echo "Converting pkcs12 to pem"
112 openssl pkcs12 -in $CLIENT_FILE_PREFIX.p12 \ 116 openssl pkcs12 -in $CLIENT_FILE_PREFIX.p12 \
113 -out $CLIENT_FILE_PREFIX.pem \ 117 -out $CLIENT_FILE_PREFIX.pem \
114 -passin pass:$CLIENT_KEY_PASSWORD \ 118 -passin pass:$CLIENT_KEY_PASSWORD \
115 - -passout pass:$CLIENT_KEY_PASSWORD \ 119 + -passout pass:$CLIENT_KEY_PASSWORD
  120 +
  121 +echo "Converting pem to pkcs8"
  122 +openssl pkcs8 \
  123 + -topk8 \
  124 + -nocrypt \
  125 + -in $CLIENT_FILE_PREFIX.pem \
  126 + -out $CLIENT_FILE_PREFIX.pk8.pem \
  127 + -passin pass:$CLIENT_KEY_PASSWORD
116 128
117 echo "Importing server public key to $CLIENT_FILE_PREFIX.jks" 129 echo "Importing server public key to $CLIENT_FILE_PREFIX.jks"
118 keytool --importcert \ 130 keytool --importcert \
1 # 1 #
2 -# Copyright © 2016-2017 The Thingsboard Authors 2 +# Copyright © 2016-2021 The Thingsboard Authors
3 # 3 #
4 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License. 5 # you may not use this file except in compliance with the License.
@@ -18,15 +18,15 @@ DOMAIN_SUFFIX="$(hostname)" @@ -18,15 +18,15 @@ DOMAIN_SUFFIX="$(hostname)"
18 SUBJECT_ALTERNATIVE_NAMES="ip:127.0.0.1" 18 SUBJECT_ALTERNATIVE_NAMES="ip:127.0.0.1"
19 ORGANIZATIONAL_UNIT=Thingsboard 19 ORGANIZATIONAL_UNIT=Thingsboard
20 ORGANIZATION=Thingsboard 20 ORGANIZATION=Thingsboard
21 -CITY=SF 21 +CITY="San Francisco"
22 STATE_OR_PROVINCE=CA 22 STATE_OR_PROVINCE=CA
23 TWO_LETTER_COUNTRY_CODE=US 23 TWO_LETTER_COUNTRY_CODE=US
24 24
25 -SERVER_KEYSTORE_PASSWORD=server_ks_password  
26 -SERVER_KEY_PASSWORD=server_key_password 25 +SERVER_KEYSTORE_PASSWORD=password
  26 +SERVER_KEY_PASSWORD=password
27 27
28 SERVER_KEY_ALIAS="serveralias" 28 SERVER_KEY_ALIAS="serveralias"
29 -SERVER_FILE_PREFIX="mqttserver" 29 +SERVER_FILE_PREFIX="server"
30 SERVER_KEY_ALG="RSA" 30 SERVER_KEY_ALG="RSA"
31 SERVER_KEY_SIZE="2048" 31 SERVER_KEY_SIZE="2048"
32 SERVER_KEYSTORE_DIR="/etc/thingsboard/conf" 32 SERVER_KEYSTORE_DIR="/etc/thingsboard/conf"
@@ -35,6 +35,6 @@ CLIENT_KEYSTORE_PASSWORD=password @@ -35,6 +35,6 @@ CLIENT_KEYSTORE_PASSWORD=password
35 CLIENT_KEY_PASSWORD=password 35 CLIENT_KEY_PASSWORD=password
36 36
37 CLIENT_KEY_ALIAS="clientalias" 37 CLIENT_KEY_ALIAS="clientalias"
38 -CLIENT_FILE_PREFIX="mqttclient" 38 +CLIENT_FILE_PREFIX="client"
39 CLIENT_KEY_ALG="RSA" 39 CLIENT_KEY_ALG="RSA"
40 CLIENT_KEY_SIZE="2048" 40 CLIENT_KEY_SIZE="2048"
@@ -60,7 +60,8 @@ fi @@ -60,7 +60,8 @@ fi
60 60
61 . $PROPERTIES_FILE 61 . $PROPERTIES_FILE
62 62
63 -if [ -f $SERVER_FILE_PREFIX.jks ] || [ -f $SERVER_FILE_PREFIX.cer ] || [ -f $SERVER_FILE_PREFIX.pub.pem ] || [ -f $SERVER_FILE_PREFIX.pub.der ]; 63 +if [ -f $SERVER_FILE_PREFIX.jks ] || [ -f $SERVER_FILE_PREFIX.cer ] || [ -f $SERVER_FILE_PREFIX.pub.pem ] || \
  64 + [ -f $SERVER_FILE_PREFIX.p12 ] || [ -f $SERVER_FILE_PREFIX.pem ] || [ -f $SERVER_FILE_PREFIX.pk8.pem ] ;
64 then 65 then
65 while : 66 while :
66 do 67 do
@@ -76,6 +77,9 @@ while : @@ -76,6 +77,9 @@ while :
76 rm -rf $SERVER_FILE_PREFIX.jks 77 rm -rf $SERVER_FILE_PREFIX.jks
77 rm -rf $SERVER_FILE_PREFIX.pub.pem 78 rm -rf $SERVER_FILE_PREFIX.pub.pem
78 rm -rf $SERVER_FILE_PREFIX.cer 79 rm -rf $SERVER_FILE_PREFIX.cer
  80 + rm -rf $SERVER_FILE_PREFIX.p12
  81 + rm -rf $SERVER_FILE_PREFIX.pem
  82 + rm -rf $SERVER_FILE_PREFIX.pk8.pem
79 break; 83 break;
80 ;; 84 ;;
81 *) echo "Please reply 'yes' or 'no'" 85 *) echo "Please reply 'yes' or 'no'"
@@ -84,6 +88,8 @@ while : @@ -84,6 +88,8 @@ while :
84 done 88 done
85 fi 89 fi
86 90
  91 +echo "INFO: your hostname is $(hostname)"
  92 +echo "INFO: your CN (domain suffix) for key is $DOMAIN_SUFFIX"
87 echo "Generating SSL Key Pair..." 93 echo "Generating SSL Key Pair..."
88 94
89 EXT="" 95 EXT=""
@@ -121,6 +127,32 @@ keytool -export \ @@ -121,6 +127,32 @@ keytool -export \
121 -storepass $SERVER_KEYSTORE_PASSWORD \ 127 -storepass $SERVER_KEYSTORE_PASSWORD \
122 -keypass $SERVER_KEY_PASSWORD 128 -keypass $SERVER_KEY_PASSWORD
123 129
  130 +echo "Converting keystore to pkcs12"
  131 +keytool -importkeystore \
  132 + -srckeystore $SERVER_FILE_PREFIX.jks \
  133 + -destkeystore $SERVER_FILE_PREFIX.p12 \
  134 + -srcalias $SERVER_KEY_ALIAS \
  135 + -srcstoretype jks \
  136 + -deststoretype pkcs12 \
  137 + -srcstorepass $SERVER_KEYSTORE_PASSWORD \
  138 + -deststorepass $SERVER_KEY_PASSWORD \
  139 + -srckeypass $SERVER_KEY_PASSWORD \
  140 + -destkeypass $SERVER_KEY_PASSWORD
  141 +
  142 +echo "Converting pkcs12 to pem"
  143 +openssl pkcs12 -in $SERVER_FILE_PREFIX.p12 \
  144 + -out $SERVER_FILE_PREFIX.pem \
  145 + -passin pass:$SERVER_KEY_PASSWORD \
  146 + -passout pass:$SERVER_KEY_PASSWORD
  147 +
  148 +echo "Converting pem to pkcs8"
  149 +openssl pkcs8 \
  150 + -topk8 \
  151 + -nocrypt \
  152 + -in $SERVER_FILE_PREFIX.pem \
  153 + -out $SERVER_FILE_PREFIX.pk8.pem \
  154 + -passin pass:$SERVER_KEY_PASSWORD
  155 +
124 status=$? 156 status=$?
125 if [[ $status != 0 ]]; then 157 if [[ $status != 0 ]]; then
126 exit $status; 158 exit $status;