xref: /aosp_15_r20/external/cronet/net/data/ssl/scripts/generate-client-certificates.sh (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker#!/bin/bash
2*6777b538SAndroid Build Coastguard Worker
3*6777b538SAndroid Build Coastguard Worker# Copyright 2012 The Chromium Authors
4*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
5*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Worker# This script generates certificates that can be used to test SSL client
8*6777b538SAndroid Build Coastguard Worker# authentication. Outputs for automated tests are stored in
9*6777b538SAndroid Build Coastguard Worker# net/data/ssl/certificates, but may be re-generated for manual testing.
10*6777b538SAndroid Build Coastguard Worker#
11*6777b538SAndroid Build Coastguard Worker# This script generates several chains of test client certificates:
12*6777b538SAndroid Build Coastguard Worker#
13*6777b538SAndroid Build Coastguard Worker#   1. A (end-entity) -> B -> C (self-signed root)
14*6777b538SAndroid Build Coastguard Worker#   2. D (end-entity) -> E -> C (self-signed root)
15*6777b538SAndroid Build Coastguard Worker#   3. F (end-entity) -> E -> C (self-signed root)
16*6777b538SAndroid Build Coastguard Worker#   4. G (end-entity, P-256) -> E -> C (self-signed root)
17*6777b538SAndroid Build Coastguard Worker#   5. H (end-entity, P-384) -> E -> C (self-signed root)
18*6777b538SAndroid Build Coastguard Worker#   6. I (end-entity, P-521) -> E -> C (self-signed root)
19*6777b538SAndroid Build Coastguard Worker#   7. J (end-entity, RSA-1024) -> E -> C (self-signed root)
20*6777b538SAndroid Build Coastguard Worker#
21*6777b538SAndroid Build Coastguard Worker# In which the certificates all have distinct keypairs. The client
22*6777b538SAndroid Build Coastguard Worker# certificates share the same root, but are issued by different
23*6777b538SAndroid Build Coastguard Worker# intermediates. The names of these intermediates are hardcoded within
24*6777b538SAndroid Build Coastguard Worker# unit tests, and thus should not be changed.
25*6777b538SAndroid Build Coastguard Worker
26*6777b538SAndroid Build Coastguard Workertry () {
27*6777b538SAndroid Build Coastguard Worker  echo "$@"
28*6777b538SAndroid Build Coastguard Worker  "$@" || exit 1
29*6777b538SAndroid Build Coastguard Worker}
30*6777b538SAndroid Build Coastguard Worker
31*6777b538SAndroid Build Coastguard Workertry rm -rf out
32*6777b538SAndroid Build Coastguard Workertry mkdir out
33*6777b538SAndroid Build Coastguard Worker
34*6777b538SAndroid Build Coastguard Workerecho Create the serial number files and indices.
35*6777b538SAndroid Build Coastguard Workerserial=1000
36*6777b538SAndroid Build Coastguard Workerfor i in B C E
37*6777b538SAndroid Build Coastguard Workerdo
38*6777b538SAndroid Build Coastguard Worker  try /bin/sh -c "echo $serial > out/$i-serial"
39*6777b538SAndroid Build Coastguard Worker  serial=$(expr $serial + 1)
40*6777b538SAndroid Build Coastguard Worker  touch out/$i-index.txt
41*6777b538SAndroid Build Coastguard Worker  touch out/$i-index.txt.attr
42*6777b538SAndroid Build Coastguard Workerdone
43*6777b538SAndroid Build Coastguard Worker
44*6777b538SAndroid Build Coastguard Workerecho Generate the keys.
45*6777b538SAndroid Build Coastguard Workerfor i in A B C D E F
46*6777b538SAndroid Build Coastguard Workerdo
47*6777b538SAndroid Build Coastguard Worker  try openssl genrsa -out out/$i.key 2048
48*6777b538SAndroid Build Coastguard Workerdone
49*6777b538SAndroid Build Coastguard Worker
50*6777b538SAndroid Build Coastguard Workertry openssl ecparam -name prime256v1 -genkey -noout -out out/G.key
51*6777b538SAndroid Build Coastguard Workertry openssl ecparam -name secp384r1 -genkey -noout -out out/H.key
52*6777b538SAndroid Build Coastguard Workertry openssl ecparam -name secp521r1 -genkey -noout -out out/I.key
53*6777b538SAndroid Build Coastguard Workertry openssl genrsa -out out/J.key 1024
54*6777b538SAndroid Build Coastguard Worker
55*6777b538SAndroid Build Coastguard Workerecho Generate the C CSR
56*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="C Root CA" \
57*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
58*6777b538SAndroid Build Coastguard Worker  ID=C \
59*6777b538SAndroid Build Coastguard Worker  try openssl req \
60*6777b538SAndroid Build Coastguard Worker    -new \
61*6777b538SAndroid Build Coastguard Worker    -key out/C.key \
62*6777b538SAndroid Build Coastguard Worker    -out out/C.csr \
63*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
64*6777b538SAndroid Build Coastguard Worker
65*6777b538SAndroid Build Coastguard Workerecho C signs itself.
66*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="C Root CA" \
67*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
68*6777b538SAndroid Build Coastguard Worker  ID=C \
69*6777b538SAndroid Build Coastguard Worker  try openssl x509 \
70*6777b538SAndroid Build Coastguard Worker    -req -days 3650 \
71*6777b538SAndroid Build Coastguard Worker    -in out/C.csr \
72*6777b538SAndroid Build Coastguard Worker    -extensions ca_cert \
73*6777b538SAndroid Build Coastguard Worker    -extfile client-certs.cnf \
74*6777b538SAndroid Build Coastguard Worker    -signkey out/C.key \
75*6777b538SAndroid Build Coastguard Worker    -out out/C.pem
76*6777b538SAndroid Build Coastguard Worker
77*6777b538SAndroid Build Coastguard Workerecho Generate the intermediates
78*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="B CA" \
79*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
80*6777b538SAndroid Build Coastguard Worker  ID=B \
81*6777b538SAndroid Build Coastguard Worker  try openssl req \
82*6777b538SAndroid Build Coastguard Worker    -new \
83*6777b538SAndroid Build Coastguard Worker    -key out/B.key \
84*6777b538SAndroid Build Coastguard Worker    -out out/B.csr \
85*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
86*6777b538SAndroid Build Coastguard Worker
87*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="C CA" \
88*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
89*6777b538SAndroid Build Coastguard Worker  ID=C \
90*6777b538SAndroid Build Coastguard Worker  try openssl ca \
91*6777b538SAndroid Build Coastguard Worker    -batch \
92*6777b538SAndroid Build Coastguard Worker    -extensions ca_cert \
93*6777b538SAndroid Build Coastguard Worker    -in out/B.csr \
94*6777b538SAndroid Build Coastguard Worker    -out out/B.pem \
95*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
96*6777b538SAndroid Build Coastguard Worker
97*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="E CA" \
98*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
99*6777b538SAndroid Build Coastguard Worker  ID=E \
100*6777b538SAndroid Build Coastguard Worker  try openssl req \
101*6777b538SAndroid Build Coastguard Worker    -new \
102*6777b538SAndroid Build Coastguard Worker    -key out/E.key \
103*6777b538SAndroid Build Coastguard Worker    -out out/E.csr \
104*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
105*6777b538SAndroid Build Coastguard Worker
106*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="C CA" \
107*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
108*6777b538SAndroid Build Coastguard Worker  ID=C \
109*6777b538SAndroid Build Coastguard Worker  try openssl ca \
110*6777b538SAndroid Build Coastguard Worker    -batch \
111*6777b538SAndroid Build Coastguard Worker    -extensions ca_cert \
112*6777b538SAndroid Build Coastguard Worker    -in out/E.csr \
113*6777b538SAndroid Build Coastguard Worker    -out out/E.pem \
114*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
115*6777b538SAndroid Build Coastguard Worker
116*6777b538SAndroid Build Coastguard Workerecho Generate the leaf certs
117*6777b538SAndroid Build Coastguard Workerfor id in A D F G H I J
118*6777b538SAndroid Build Coastguard Workerdo
119*6777b538SAndroid Build Coastguard Worker  COMMON_NAME="Client Cert $id" \
120*6777b538SAndroid Build Coastguard Worker  ID=$id \
121*6777b538SAndroid Build Coastguard Worker  try openssl req \
122*6777b538SAndroid Build Coastguard Worker    -new \
123*6777b538SAndroid Build Coastguard Worker    -key out/$id.key \
124*6777b538SAndroid Build Coastguard Worker    -out out/$id.csr \
125*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
126*6777b538SAndroid Build Coastguard Worker  # Store the private key also in PKCS#8 format.
127*6777b538SAndroid Build Coastguard Worker  try openssl pkcs8 \
128*6777b538SAndroid Build Coastguard Worker    -topk8 -nocrypt \
129*6777b538SAndroid Build Coastguard Worker    -in out/$id.key \
130*6777b538SAndroid Build Coastguard Worker    -outform DER \
131*6777b538SAndroid Build Coastguard Worker    -out out/$id.pk8
132*6777b538SAndroid Build Coastguard Workerdone
133*6777b538SAndroid Build Coastguard Worker
134*6777b538SAndroid Build Coastguard Workerecho B signs A
135*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="B CA" \
136*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
137*6777b538SAndroid Build Coastguard Worker  ID=B \
138*6777b538SAndroid Build Coastguard Worker  try openssl ca \
139*6777b538SAndroid Build Coastguard Worker    -batch \
140*6777b538SAndroid Build Coastguard Worker    -extensions user_cert \
141*6777b538SAndroid Build Coastguard Worker    -in out/A.csr \
142*6777b538SAndroid Build Coastguard Worker    -out out/A.pem \
143*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
144*6777b538SAndroid Build Coastguard Worker
145*6777b538SAndroid Build Coastguard Workerecho E signs D
146*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="E CA" \
147*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
148*6777b538SAndroid Build Coastguard Worker  ID=E \
149*6777b538SAndroid Build Coastguard Worker  try openssl ca \
150*6777b538SAndroid Build Coastguard Worker    -batch \
151*6777b538SAndroid Build Coastguard Worker    -extensions user_cert \
152*6777b538SAndroid Build Coastguard Worker    -in out/D.csr \
153*6777b538SAndroid Build Coastguard Worker    -out out/D.pem \
154*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
155*6777b538SAndroid Build Coastguard Worker
156*6777b538SAndroid Build Coastguard Workerecho E signs F
157*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="E CA" \
158*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
159*6777b538SAndroid Build Coastguard Worker  ID=E \
160*6777b538SAndroid Build Coastguard Worker  try openssl ca \
161*6777b538SAndroid Build Coastguard Worker    -batch \
162*6777b538SAndroid Build Coastguard Worker    -extensions san_user_cert \
163*6777b538SAndroid Build Coastguard Worker    -in out/F.csr \
164*6777b538SAndroid Build Coastguard Worker    -out out/F.pem \
165*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
166*6777b538SAndroid Build Coastguard Worker
167*6777b538SAndroid Build Coastguard Workerecho E signs G
168*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="E CA" \
169*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
170*6777b538SAndroid Build Coastguard Worker  ID=E \
171*6777b538SAndroid Build Coastguard Worker  try openssl ca \
172*6777b538SAndroid Build Coastguard Worker    -batch \
173*6777b538SAndroid Build Coastguard Worker    -extensions user_cert \
174*6777b538SAndroid Build Coastguard Worker    -in out/G.csr \
175*6777b538SAndroid Build Coastguard Worker    -out out/G.pem \
176*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
177*6777b538SAndroid Build Coastguard Worker
178*6777b538SAndroid Build Coastguard Workerecho E signs H
179*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="E CA" \
180*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
181*6777b538SAndroid Build Coastguard Worker  ID=E \
182*6777b538SAndroid Build Coastguard Worker  try openssl ca \
183*6777b538SAndroid Build Coastguard Worker    -batch \
184*6777b538SAndroid Build Coastguard Worker    -extensions user_cert \
185*6777b538SAndroid Build Coastguard Worker    -in out/H.csr \
186*6777b538SAndroid Build Coastguard Worker    -out out/H.pem \
187*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
188*6777b538SAndroid Build Coastguard Worker
189*6777b538SAndroid Build Coastguard Workerecho E signs I
190*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="E CA" \
191*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
192*6777b538SAndroid Build Coastguard Worker  ID=E \
193*6777b538SAndroid Build Coastguard Worker  try openssl ca \
194*6777b538SAndroid Build Coastguard Worker    -batch \
195*6777b538SAndroid Build Coastguard Worker    -extensions user_cert \
196*6777b538SAndroid Build Coastguard Worker    -in out/I.csr \
197*6777b538SAndroid Build Coastguard Worker    -out out/I.pem \
198*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
199*6777b538SAndroid Build Coastguard Worker
200*6777b538SAndroid Build Coastguard Workerecho E signs J
201*6777b538SAndroid Build Coastguard WorkerCOMMON_NAME="E CA" \
202*6777b538SAndroid Build Coastguard Worker  CA_DIR=out \
203*6777b538SAndroid Build Coastguard Worker  ID=E \
204*6777b538SAndroid Build Coastguard Worker  try openssl ca \
205*6777b538SAndroid Build Coastguard Worker    -batch \
206*6777b538SAndroid Build Coastguard Worker    -extensions user_cert \
207*6777b538SAndroid Build Coastguard Worker    -in out/J.csr \
208*6777b538SAndroid Build Coastguard Worker    -out out/J.pem \
209*6777b538SAndroid Build Coastguard Worker    -config client-certs.cnf
210*6777b538SAndroid Build Coastguard Worker
211*6777b538SAndroid Build Coastguard Workerecho Package the client certs and private keys into PKCS12 files
212*6777b538SAndroid Build Coastguard Worker# This is done for easily importing all of the certs needed for clients.
213*6777b538SAndroid Build Coastguard Workertry /bin/sh -c "cat out/A.pem out/A.key out/B.pem out/C.pem > out/A-chain.pem"
214*6777b538SAndroid Build Coastguard Workertry /bin/sh -c "cat out/D.pem out/D.key out/E.pem out/C.pem > out/D-chain.pem"
215*6777b538SAndroid Build Coastguard Workertry /bin/sh -c "cat out/F.pem out/F.key out/E.pem out/C.pem > out/F-chain.pem"
216*6777b538SAndroid Build Coastguard Workertry /bin/sh -c "cat out/G.pem out/G.key out/E.pem out/C.pem > out/G-chain.pem"
217*6777b538SAndroid Build Coastguard Workertry /bin/sh -c "cat out/H.pem out/H.key out/E.pem out/C.pem > out/H-chain.pem"
218*6777b538SAndroid Build Coastguard Workertry /bin/sh -c "cat out/I.pem out/I.key out/E.pem out/C.pem > out/I-chain.pem"
219*6777b538SAndroid Build Coastguard Workertry /bin/sh -c "cat out/J.pem out/J.key out/E.pem out/C.pem > out/J-chain.pem"
220*6777b538SAndroid Build Coastguard Worker
221*6777b538SAndroid Build Coastguard Workertry openssl pkcs12 \
222*6777b538SAndroid Build Coastguard Worker  -in out/A-chain.pem \
223*6777b538SAndroid Build Coastguard Worker  -out client_1.p12 \
224*6777b538SAndroid Build Coastguard Worker  -export \
225*6777b538SAndroid Build Coastguard Worker  -passout pass:chrome
226*6777b538SAndroid Build Coastguard Worker
227*6777b538SAndroid Build Coastguard Workertry openssl pkcs12 \
228*6777b538SAndroid Build Coastguard Worker  -in out/D-chain.pem \
229*6777b538SAndroid Build Coastguard Worker  -out client_2.p12 \
230*6777b538SAndroid Build Coastguard Worker  -export \
231*6777b538SAndroid Build Coastguard Worker  -passout pass:chrome
232*6777b538SAndroid Build Coastguard Worker
233*6777b538SAndroid Build Coastguard Workertry openssl pkcs12 \
234*6777b538SAndroid Build Coastguard Worker  -in out/F-chain.pem \
235*6777b538SAndroid Build Coastguard Worker  -out client_3.p12 \
236*6777b538SAndroid Build Coastguard Worker  -export \
237*6777b538SAndroid Build Coastguard Worker  -passout pass:chrome
238*6777b538SAndroid Build Coastguard Worker
239*6777b538SAndroid Build Coastguard Workertry openssl pkcs12 \
240*6777b538SAndroid Build Coastguard Worker  -in out/G-chain.pem \
241*6777b538SAndroid Build Coastguard Worker  -out client_4.p12 \
242*6777b538SAndroid Build Coastguard Worker  -export \
243*6777b538SAndroid Build Coastguard Worker  -passout pass:chrome
244*6777b538SAndroid Build Coastguard Worker
245*6777b538SAndroid Build Coastguard Workertry openssl pkcs12 \
246*6777b538SAndroid Build Coastguard Worker  -in out/H-chain.pem \
247*6777b538SAndroid Build Coastguard Worker  -out client_5.p12 \
248*6777b538SAndroid Build Coastguard Worker  -export \
249*6777b538SAndroid Build Coastguard Worker  -passout pass:chrome
250*6777b538SAndroid Build Coastguard Worker
251*6777b538SAndroid Build Coastguard Workertry openssl pkcs12 \
252*6777b538SAndroid Build Coastguard Worker  -in out/I-chain.pem \
253*6777b538SAndroid Build Coastguard Worker  -out client_6.p12 \
254*6777b538SAndroid Build Coastguard Worker  -export \
255*6777b538SAndroid Build Coastguard Worker  -passout pass:chrome
256*6777b538SAndroid Build Coastguard Worker
257*6777b538SAndroid Build Coastguard Workertry openssl pkcs12 \
258*6777b538SAndroid Build Coastguard Worker  -in out/J-chain.pem \
259*6777b538SAndroid Build Coastguard Worker  -out client_7.p12 \
260*6777b538SAndroid Build Coastguard Worker  -export \
261*6777b538SAndroid Build Coastguard Worker  -passout pass:chrome
262*6777b538SAndroid Build Coastguard Worker
263*6777b538SAndroid Build Coastguard Workertry openssl pkcs12 \
264*6777b538SAndroid Build Coastguard Worker  -inkey out/A.key \
265*6777b538SAndroid Build Coastguard Worker  -in out/A.pem \
266*6777b538SAndroid Build Coastguard Worker  -out out/client_1_u16_password.p12 \
267*6777b538SAndroid Build Coastguard Worker  -export \
268*6777b538SAndroid Build Coastguard Worker  -passout pass:"Hello, 世界"
269*6777b538SAndroid Build Coastguard Worker
270*6777b538SAndroid Build Coastguard Workerecho Package the client certs for unit tests
271*6777b538SAndroid Build Coastguard Workertry cp out/A.pem ../certificates/client_1.pem
272*6777b538SAndroid Build Coastguard Workertry cp out/A.key ../certificates/client_1.key
273*6777b538SAndroid Build Coastguard Workertry cp out/A.pk8 ../certificates/client_1.pk8
274*6777b538SAndroid Build Coastguard Workertry cp out/B.pem ../certificates/client_1_ca.pem
275*6777b538SAndroid Build Coastguard Worker
276*6777b538SAndroid Build Coastguard Workertry cp out/D.pem ../certificates/client_2.pem
277*6777b538SAndroid Build Coastguard Workertry cp out/D.key ../certificates/client_2.key
278*6777b538SAndroid Build Coastguard Workertry cp out/D.pk8 ../certificates/client_2.pk8
279*6777b538SAndroid Build Coastguard Workertry cp out/E.pem ../certificates/client_2_ca.pem
280*6777b538SAndroid Build Coastguard Worker
281*6777b538SAndroid Build Coastguard Workertry cp out/F.pem ../certificates/client_3.pem
282*6777b538SAndroid Build Coastguard Workertry cp out/F.key ../certificates/client_3.key
283*6777b538SAndroid Build Coastguard Workertry cp out/F.pk8 ../certificates/client_3.pk8
284*6777b538SAndroid Build Coastguard Workertry cp out/E.pem ../certificates/client_3_ca.pem
285*6777b538SAndroid Build Coastguard Worker
286*6777b538SAndroid Build Coastguard Workertry cp out/G.pem ../certificates/client_4.pem
287*6777b538SAndroid Build Coastguard Workertry cp out/G.key ../certificates/client_4.key
288*6777b538SAndroid Build Coastguard Workertry cp out/G.pk8 ../certificates/client_4.pk8
289*6777b538SAndroid Build Coastguard Workertry cp out/E.pem ../certificates/client_4_ca.pem
290*6777b538SAndroid Build Coastguard Worker
291*6777b538SAndroid Build Coastguard Workertry cp out/H.pem ../certificates/client_5.pem
292*6777b538SAndroid Build Coastguard Workertry cp out/H.key ../certificates/client_5.key
293*6777b538SAndroid Build Coastguard Workertry cp out/H.pk8 ../certificates/client_5.pk8
294*6777b538SAndroid Build Coastguard Workertry cp out/E.pem ../certificates/client_5_ca.pem
295*6777b538SAndroid Build Coastguard Worker
296*6777b538SAndroid Build Coastguard Workertry cp out/I.pem ../certificates/client_6.pem
297*6777b538SAndroid Build Coastguard Workertry cp out/I.key ../certificates/client_6.key
298*6777b538SAndroid Build Coastguard Workertry cp out/I.pk8 ../certificates/client_6.pk8
299*6777b538SAndroid Build Coastguard Workertry cp out/E.pem ../certificates/client_6_ca.pem
300*6777b538SAndroid Build Coastguard Worker
301*6777b538SAndroid Build Coastguard Workertry cp out/J.pem ../certificates/client_7.pem
302*6777b538SAndroid Build Coastguard Workertry cp out/J.key ../certificates/client_7.key
303*6777b538SAndroid Build Coastguard Workertry cp out/J.pk8 ../certificates/client_7.pk8
304*6777b538SAndroid Build Coastguard Workertry cp out/E.pem ../certificates/client_7_ca.pem
305*6777b538SAndroid Build Coastguard Worker
306*6777b538SAndroid Build Coastguard Workertry cp out/client_1_u16_password.p12 ../certificates/client_1_u16_password.p12
307*6777b538SAndroid Build Coastguard Worker
308*6777b538SAndroid Build Coastguard Workertry cp out/C.pem ../certificates/client_root_ca.pem
309