@@ -7,54 +7,129 @@ ENV="$2"
7
7
8
8
ALIAS=" itmo-dating"
9
9
ALIAS_BACKEND=" $ALIAS -backend"
10
- KEYSTORE= " keystore.p12 "
10
+ VALIDITY=1
11
11
BACKEND_INSTALL_PATH=" foundation/src/main/resources/keystore"
12
+ CONSUL_INSTALL_PATH=" consul/config"
12
13
GATEWAY_INSTALL_PATH=" gateway/src/main/resources/keystore"
13
14
PASSWORD=" $ITMO_DATING_KEY_STORE_PASSWORD "
14
15
16
+ function generate() {
17
+ echo " Phase: Generate"
18
+
19
+ echo " Generating the private key for CA certificate..."
20
+ openssl genpkey \
21
+ -algorithm RSA \
22
+ -out " $ALIAS_BACKEND -ca.key" 2> /dev/null
23
+
24
+ echo " Generating the self-signed CA certificate..."
25
+ openssl req -x509 -new \
26
+ -nodes \
27
+ -days " $VALIDITY " \
28
+ -config ca.cnf \
29
+ -key " $ALIAS_BACKEND -ca.key" \
30
+ -out " $ALIAS_BACKEND -ca.crt"
31
+
32
+ echo " Generating the private key for services..."
33
+ openssl genpkey \
34
+ -algorithm RSA \
35
+ -out " $ALIAS_BACKEND .key" 2> /dev/null
36
+
37
+ echo " Generating the Certificate Signing Request (CSR)..."
38
+ openssl req -new \
39
+ -config csr.cnf \
40
+ -key " $ALIAS_BACKEND .key" \
41
+ -out " $ALIAS_BACKEND .csr"
42
+
43
+ echo " Signing the CSR with self-signed CA to create a certificate..."
44
+ openssl x509 -req \
45
+ -sha256 \
46
+ -days " $VALIDITY " \
47
+ -extfile csr.cnf -extensions req_ext \
48
+ -CAcreateserial \
49
+ -CA " $ALIAS_BACKEND -ca.crt" \
50
+ -CAkey " $ALIAS_BACKEND -ca.key" \
51
+ -in " $ALIAS_BACKEND .csr" \
52
+ -out " $ALIAS_BACKEND .crt"
53
+
54
+ echo " Packaging keys and certificates..."
55
+ openssl pkcs12 -export \
56
+ -password pass:" $PASSWORD " \
57
+ -inkey " $ALIAS_BACKEND .key" \
58
+ -in " $ALIAS_BACKEND .crt" \
59
+ -certfile " $ALIAS_BACKEND -ca.crt" \
60
+ -out " $ALIAS_BACKEND .p12"
61
+
62
+ echo " Converting PKCS12 to JKS..."
63
+ keytool -importkeystore \
64
+ -srcstoretype PKCS12 \
65
+ -srckeystore " $ALIAS_BACKEND .p12" \
66
+ -srcstorepass " $PASSWORD " \
67
+ -deststoretype JKS \
68
+ -destkeystore " $ALIAS_BACKEND .jks" \
69
+ -deststorepass " $PASSWORD "
70
+ }
71
+
15
72
function copy() {
16
- mkdir -p " ../../$BACKEND_INSTALL_PATH "
17
- mkdir -p " ../../$GATEWAY_INSTALL_PATH "
18
- cp " $1 " " ../../$BACKEND_INSTALL_PATH /$1 "
19
- cp " $1 " " ../../$GATEWAY_INSTALL_PATH /$1 "
73
+ DIR=" $1 "
74
+ FILE=" $2 "
75
+
76
+ mkdir -p " ../../$DIR "
77
+ cp " $FILE " " ../../$DIR /$FILE "
20
78
}
21
79
22
- function remove() {
23
- rm -f " $1 " " ../../$BACKEND_INSTALL_PATH /$1 " " ../../$GATEWAY_INSTALL_PATH /$1 "
80
+ function distribute() {
81
+ echo " Phase: Distribute"
82
+
83
+ echo " Copying package to the backend..."
84
+ copy " $BACKEND_INSTALL_PATH " " $ALIAS_BACKEND .p12"
85
+ copy " $BACKEND_INSTALL_PATH " " $ALIAS_BACKEND .jks"
86
+ copy " $BACKEND_INSTALL_PATH " " $ALIAS_BACKEND .crt"
87
+
88
+ echo " Copying package to the gateway..."
89
+ copy " $GATEWAY_INSTALL_PATH " " $ALIAS_BACKEND .p12"
90
+ copy " $GATEWAY_INSTALL_PATH " " $ALIAS_BACKEND .jks"
91
+ copy " $GATEWAY_INSTALL_PATH " " $ALIAS_BACKEND .crt"
92
+
93
+ echo " Copying keys to the consul..."
94
+ copy " $CONSUL_INSTALL_PATH " " $ALIAS_BACKEND .key"
95
+ copy " $CONSUL_INSTALL_PATH " " $ALIAS_BACKEND .crt"
96
+ copy " $CONSUL_INSTALL_PATH " " $ALIAS_BACKEND -ca.crt"
24
97
}
25
98
26
- function generate() {
27
- echo " Generating the backend key pair keystore..."
28
- keytool \
29
- -genkeypair \
30
- -alias " $ALIAS " \
31
- -keyalg RSA \
32
- -keysize 4096 \
33
- -validity 1 \
34
- -dname " CN=localhost" \
35
- -ext " san=dns:localhost,dns:authik,dns:matchmaker,dns:people" \
36
- -keypass " $PASSWORD " \
37
- -keystore " $KEYSTORE " \
38
- -storeType PKCS12 \
39
- -storepass " $PASSWORD "
40
-
41
- echo " Exporting the backend private key..."
42
- openssl pkcs12 -in " $KEYSTORE " -nocerts -out " $ALIAS_BACKEND -private.pem" \
43
- -passin pass:" $PASSWORD " -passout pass:" $PASSWORD "
44
-
45
- echo " Exporting the backend public key..."
46
- openssl pkcs12 -in " $KEYSTORE " -nokeys -out " $ALIAS_BACKEND -public.pem" \
47
- -passin pass:" $PASSWORD " -passout pass:" $PASSWORD "
48
-
49
- copy " $KEYSTORE "
50
- copy " $ALIAS_BACKEND -private.pem"
51
- copy " $ALIAS_BACKEND -public.pem"
99
+ function remove() {
100
+ DIR=" $1 "
101
+ FILE=" $2 "
102
+
103
+ rm -rf " ../../$DIR /$FILE "
104
+ rm -rf " $FILE "
52
105
}
53
106
54
107
function clear() {
55
- remove " $KEYSTORE "
56
- remove " $ALIAS_BACKEND -private.pem"
57
- remove " $ALIAS_BACKEND -public.pem"
108
+ echo " Phase: Clear"
109
+
110
+ echo " Removing package from the backend..."
111
+ remove " $BACKEND_INSTALL_PATH " " $ALIAS_BACKEND .p12"
112
+ remove " $BACKEND_INSTALL_PATH " " $ALIAS_BACKEND .jks"
113
+ remove " $BACKEND_INSTALL_PATH " " $ALIAS_BACKEND .crt"
114
+
115
+ echo " Removing package from the gateway..."
116
+ remove " $GATEWAY_INSTALL_PATH " " $ALIAS_BACKEND .p12"
117
+ remove " $GATEWAY_INSTALL_PATH " " $ALIAS_BACKEND .jks"
118
+ remove " $GATEWAY_INSTALL_PATH " " $ALIAS_BACKEND .crt"
119
+
120
+ echo " Removing keys from the consul..."
121
+ remove " $CONSUL_INSTALL_PATH " " $ALIAS_BACKEND .key"
122
+ remove " $CONSUL_INSTALL_PATH " " $ALIAS_BACKEND .crt"
123
+ remove " $CONSUL_INSTALL_PATH " " $ALIAS_BACKEND -ca.crt"
124
+
125
+ echo " Removing local outputs..."
126
+ rm -rf " $ALIAS_BACKEND .crt"
127
+ rm -rf " $ALIAS_BACKEND .csr"
128
+ rm -rf " $ALIAS_BACKEND .key"
129
+ rm -rf " $ALIAS_BACKEND .p12"
130
+ rm -rf " $ALIAS_BACKEND -ca.key"
131
+ rm -rf " $ALIAS_BACKEND -ca.crt"
132
+ rm -rf " $ALIAS_BACKEND -ca.srl"
58
133
}
59
134
60
135
if [ " $ENV " = " test" ]; then
63
138
64
139
if [ " $MODE " = " generate" ]; then
65
140
generate
141
+ distribute
66
142
elif [ " $MODE " = " clean" ]; then
67
143
clear
68
144
else
0 commit comments