8
8
9
9
10
10
# Generate the CA key and self signed certificate
11
- # inputs:
11
+ # inputs:
12
12
# certificate directory
13
13
generate_ca_certs () {
14
14
CA_DIRECTORY=$1
@@ -36,7 +36,7 @@ generate_ca_certs() {
36
36
}
37
37
38
38
# Generate the server key and certificate signed by CA
39
- # inputs:
39
+ # inputs:
40
40
# server directory
41
41
# certificate directory
42
42
generate_server_certs () {
@@ -85,8 +85,7 @@ generate_server_certs() {
85
85
fi
86
86
}
87
87
88
- # ToDo: This function needs to be updated to use the parsec-tool
89
- # for key, CSR generation for hardware backed keys.
88
+ # Use the openssl for key, CSR generation for sofware backed keys.
90
89
# Generate the client key and certificate signed by CA
91
90
# inputs:
92
91
# client directory
@@ -107,7 +106,56 @@ generate_client_certs() {
107
106
108
107
# Generate private key
109
108
openssl genrsa -out " ${CLIENT_PRIV_KEY} " 2048 > /dev/null 2>&1
109
+ if [ $? -ne 0 ]; then
110
+ echo " FAILED TO GENERATE KEY"
111
+ exit 1
112
+ fi
113
+
114
+ # Generate certificate request via OpenSSL
115
+ openssl req -new \
116
+ -key " ${CLIENT_PRIV_KEY} " \
117
+ -out " ${CLIENT_CSR} " \
118
+ -subj " /C=UK/ST=Parsec /L=Parsec/O=Parsec/CN=parsec_client.com" > /dev/null 2>&1
110
119
if [ $? -ne 0 ]; then
120
+ echo " FAILED TO GENERATE CERTIFICATE REQUEST"
121
+ exit 1
122
+ fi
123
+
124
+ # Generate certificate
125
+ openssl x509 -req -days 1000 -in " ${CLIENT_CSR} " \
126
+ -CA " ${CA_CERTIFICATE} " -CAkey " ${CA_PRIV_KEY} " \
127
+ -CAcreateserial -out " ${CLIENT_CERTIFICATE} " > /dev/null 2>&1
128
+
129
+ echo " SUCCESS"
130
+ else
131
+ echo " SKIPPED"
132
+ fi
133
+ }
134
+
135
+ # use the parsec-tool for key, CSR generation for hardware backed keys.
136
+ # Generate the client key and certificate signed by CA
137
+ # inputs:
138
+ # client directory
139
+ # certificate directory
140
+ # certificate request name (without extension)
141
+ # name of parsec key
142
+ generate_client_certs_parsec () {
143
+ CLIENT_DIRECTORY=$1
144
+ CLIENT_CERTIFICATE=${CLIENT_DIRECTORY} /$3 .pem
145
+ CLIENT_CSR=${CLIENT_DIRECTORY} /$3 .csr
146
+ CLIENT_PRIV_KEY=${CLIENT_DIRECTORY} /client_priv_key.pem
147
+
148
+ CA_DIRECTORY=$2
149
+ CA_CERTIFICATE=${CA_DIRECTORY} /ca_cert.pem
150
+ CA_PRIV_KEY=${CA_DIRECTORY} /ca_priv_key.pem
151
+
152
+ if [ ! -f " ${CLIENT_CSR} " ]; then
153
+ mkdir -p " ${CLIENT_DIRECTORY} " > /dev/null 2>&1
154
+ chmod 700 " ${CLIENT_DIRECTORY} "
155
+
156
+ # Generate private key
157
+ openssl genrsa -out " ${CLIENT_PRIV_KEY} " 2048 > /dev/null 2>&1
158
+ if [ $? -ne 0 ]; then
111
159
echo " FAILED TO GENERATE KEY"
112
160
exit 1
113
161
fi
@@ -122,10 +170,13 @@ generate_client_certs() {
122
170
exit 1
123
171
fi
124
172
173
+ # Generate certificate request via Parsec
174
+ parsec-tool create-csr --cn parsec_client.com --l Parsec --c UK --st Parsec --o Parsec --key-name $4 > ${CLIENT_CSR}
175
+
125
176
# Generate certificate
126
177
openssl x509 -req -days 1000 -in " ${CLIENT_CSR} " \
127
178
-CA " ${CA_CERTIFICATE} " -CAkey " ${CA_PRIV_KEY} " \
128
- -CAcreateserial -out " ${CLIENT_CERTIFICATE} " > /dev/null 2>&1
179
+ -CAcreateserial -out " ${CLIENT_CERTIFICATE} "
129
180
if [ $? -ne 0 ]; then
130
181
echo " FAILED"
131
182
exit 1
@@ -143,7 +194,11 @@ generate_ca_certs ./tls/ca
143
194
echo -n " Generating server private key and certificate: "
144
195
generate_server_certs ./tls/server ./tls/ca
145
196
146
- echo -n " Generating client private key and certificate: "
197
+ echo -n " Generating client certificate: "
198
+ generate_client_certs_parsec ./tls/client ./tls/ca parsec_rsa PARSEC_TEST_RSA_KEY
199
+ generate_client_certs_parsec ./tls/client ./tls/ca parsec_ecdsa PARSEC_TEST_ECDSA_KEY
200
+
201
+ echo -n " Generating openssl client private key and certificate: "
147
202
generate_client_certs ./tls/client ./tls/ca
148
203
149
204
echo -n " Generating fake certificate authority private key and certificate: "
0 commit comments