Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(679)

Side by Side Diff: net/data/ssl/scripts/generate-multi-root-test-chains.sh

Issue 137553004: NSS Cros multiprofile: trust roots added by a profile shouldn't apply to other profiles. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ios fix Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/bin/sh 1 #!/bin/sh
2 2
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2014 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # This script generates two chains of test certificates: 7 # This script generates two chains of test certificates:
8 # 8 #
9 # 1. A (end-entity) -> B -> C -> D (self-signed root) 9 # 1. A (end-entity) -> B -> C -> D (self-signed root)
10 # 2. A (end-entity) -> B -> C2 (self-signed root) 10 # 2. A (end-entity) -> B -> C2 -> E (self-signed root)
11 # 11 #
12 # in which A, B, C, and D have distinct keypairs. C2 is a self-signed root 12 # C and C2 have the same subject and keypair.
13 # certificate that uses the same keypair as C.
14 # 13 #
15 # We use these cert chains in 14 # We use these cert chains in CertVerifyProcChromeOSTest
16 # SSLClientSocketTest.VerifyReturnChainProperlyOrdered to ensure that 15 # to ensure that multiple verification paths are properly handled.
17 # SSLInfo objects see the certificate chain as validated rather than as
18 # served by the server. The server serves chain 1. The client has C2, NOT D,
19 # installed as a trusted root. Therefore, the chain will validate as chain
20 # 2, even though the server served chain 1.
21 16
22 try () { 17 try () {
23 echo "$@" 18 echo "$@"
24 "$@" || exit 1 19 "$@" || exit 1
25 } 20 }
26 21
27 try rm -rf out 22 try rm -rf out
28 try mkdir out 23 try mkdir out
29 24
30 echo Create the serial number files. 25 echo Create the serial number files.
31 serial=1000 26 serial=1000
32 for i in B C C2 D 27 for i in B C C2 D E
33 do 28 do
34 try /bin/sh -c "echo $serial > out/$i-serial" 29 try /bin/sh -c "echo $serial > out/$i-serial"
35 serial=$(expr $serial + 1) 30 serial=$(expr $serial + 1)
36 done 31 done
37 32
38 echo Generate the keys. 33 echo Generate the keys.
39 try openssl genrsa -out out/A.key 2048 34 try openssl genrsa -out out/A.key 2048
40 try openssl genrsa -out out/B.key 2048 35 try openssl genrsa -out out/B.key 2048
41 try openssl genrsa -out out/C.key 2048 36 try openssl genrsa -out out/C.key 2048
42 try openssl genrsa -out out/D.key 2048 37 try openssl genrsa -out out/D.key 2048
38 try openssl genrsa -out out/E.key 2048
43 39
44 echo Generate the D CSR. 40 echo Generate the D CSR.
45 CA_COMMON_NAME="D Root CA" \ 41 CA_COMMON_NAME="D Root CA" \
46 CERTIFICATE=D \ 42 CERTIFICATE=D \
47 try openssl req \ 43 try openssl req \
48 -new \ 44 -new \
49 -key out/D.key \ 45 -key out/D.key \
50 -out out/D.csr \ 46 -out out/D.csr \
51 -config redundant-ca.cnf 47 -config redundant-ca.cnf
52 48
53 echo D signs itself. 49 echo D signs itself.
54 CA_COMMON_NAME="D Root CA" \ 50 CA_COMMON_NAME="D Root CA" \
55 try openssl x509 \ 51 try openssl x509 \
56 -req -days 3650 \ 52 -req -days 3650 \
57 -in out/D.csr \ 53 -in out/D.csr \
58 -extensions ca_cert \ 54 -extensions ca_cert \
59 -extfile redundant-ca.cnf \ 55 -extfile redundant-ca.cnf \
60 -signkey out/D.key \ 56 -signkey out/D.key \
61 -out out/D.pem \ 57 -out out/D.pem \
62 -text 58 -text
63 59
64 echo Generate the C2 root CSR. 60 echo Generate the E CSR.
61 CA_COMMON_NAME="E Root CA" \
62 CERTIFICATE=E \
63 try openssl req \
64 -new \
65 -key out/E.key \
66 -out out/E.csr \
67 -config redundant-ca.cnf
68
69 echo E signs itself.
70 CA_COMMON_NAME="E Root CA" \
71 try openssl x509 \
72 -req -days 3650 \
73 -in out/E.csr \
74 -extensions ca_cert \
75 -extfile redundant-ca.cnf \
76 -signkey out/E.key \
77 -out out/E.pem \
78 -text
79
80 echo Generate the C2 intermediary CSR.
65 CA_COMMON_NAME="C CA" \ 81 CA_COMMON_NAME="C CA" \
66 CERTIFICATE=C2 \ 82 CERTIFICATE=C2 \
67 try openssl req \ 83 try openssl req \
68 -new \ 84 -new \
69 -key out/C.key \ 85 -key out/C.key \
70 -out out/C2.csr \ 86 -out out/C2.csr \
71 -config redundant-ca.cnf 87 -config redundant-ca.cnf
72 88
73 echo C2 signs itself.
74 CA_COMMON_NAME="C CA" \
75 try openssl x509 \
76 -req -days 3650 \
77 -in out/C2.csr \
78 -extensions ca_cert \
79 -extfile redundant-ca.cnf \
80 -signkey out/C.key \
81 -out out/C2.pem \
82 -text
83
84 echo Generate the B and C intermediaries\' CSRs. 89 echo Generate the B and C intermediaries\' CSRs.
85 for i in B C 90 for i in B C
86 do 91 do
87 name="$i Intermediate CA"
88 CA_COMMON_NAME="$i CA" \ 92 CA_COMMON_NAME="$i CA" \
89 CERTIFICATE=$i \ 93 CERTIFICATE="$i" \
90 try openssl req \ 94 try openssl req \
91 -new \ 95 -new \
92 -key out/$i.key \ 96 -key "out/$i.key" \
93 -out out/$i.csr \ 97 -out "out/$i.csr" \
94 -config redundant-ca.cnf 98 -config redundant-ca.cnf
95 done 99 done
96 100
97 echo D signs the C intermediate. 101 echo D signs the C intermediate.
98 # Make sure the signer's DB file exists. 102 # Make sure the signer's DB file exists.
99 touch out/D-index.txt 103 touch out/D-index.txt
100 CA_COMMON_NAME="D Root CA" \ 104 CA_COMMON_NAME="D Root CA" \
101 CERTIFICATE=D \ 105 CERTIFICATE=D \
102 try openssl ca \ 106 try openssl ca \
103 -batch \ 107 -batch \
104 -extensions ca_cert \ 108 -extensions ca_cert \
105 -in out/C.csr \ 109 -in out/C.csr \
106 -out out/C.pem \ 110 -out out/C.pem \
107 -config redundant-ca.cnf 111 -config redundant-ca.cnf
108 112
113 echo E signs the C2 intermediate.
114 # Make sure the signer's DB file exists.
115 touch out/E-index.txt
116 CA_COMMON_NAME="E Root CA" \
117 CERTIFICATE=E \
118 try openssl ca \
119 -batch \
120 -extensions ca_cert \
121 -in out/C2.csr \
122 -out out/C2.pem \
123 -config redundant-ca.cnf
124
109 echo C signs the B intermediate. 125 echo C signs the B intermediate.
110 touch out/C-index.txt 126 touch out/C-index.txt
111 CA_COMMON_NAME="C CA" \ 127 CA_COMMON_NAME="C CA" \
112 CERTIFICATE=C \ 128 CERTIFICATE=C \
113 try openssl ca \ 129 try openssl ca \
114 -batch \ 130 -batch \
115 -extensions ca_cert \ 131 -extensions ca_cert \
116 -in out/B.csr \ 132 -in out/B.csr \
117 -out out/B.pem \ 133 -out out/B.pem \
118 -config redundant-ca.cnf 134 -config redundant-ca.cnf
119 135
120 echo Generate the A end-entity CSR. 136 echo Generate the A end-entity CSR.
121 try openssl req \ 137 try openssl req \
122 -new \ 138 -new \
123 -key out/A.key \ 139 -key out/A.key \
124 -out out/A.csr \ 140 -out out/A.csr \
125 -config ee.cnf 141 -config ee.cnf
126 142
127 echo B signs A. 143 echo B signs A.
128 touch out/B-index.txt 144 touch out/B-index.txt
129 CA_COMMON_NAME="B CA" \ 145 CA_COMMON_NAME="B CA" \
130 CERTIFICATE=B \ 146 CERTIFICATE=B \
131 try openssl ca \ 147 try openssl ca \
132 -batch \ 148 -batch \
133 -extensions user_cert \ 149 -extensions user_cert \
134 -in out/A.csr \ 150 -in out/A.csr \
135 -out out/A.pem \ 151 -out out/A.pem \
136 -config redundant-ca.cnf 152 -config redundant-ca.cnf
137 153
138 echo Create redundant-server-chain.pem 154 echo Create multi-root-chain1.pem
139 try /bin/sh -c "cat out/A.key out/A.pem out/B.pem out/C.pem out/D.pem \ 155 try /bin/sh -c "cat out/A.key out/A.pem out/B.pem out/C.pem out/D.pem \
140 > ../certificates/redundant-server-chain.pem" 156 > ../certificates/multi-root-chain1.pem"
141 157
142 echo Create redundant-validated-chain.pem 158 echo Create multi-root-chain2.pem
143 try /bin/sh -c "cat out/A.key out/A.pem out/B.pem out/C2.pem \ 159 try /bin/sh -c "cat out/A.key out/A.pem out/B.pem out/C2.pem out/E.pem \
144 > ../certificates/redundant-validated-chain.pem" 160 > ../certificates/multi-root-chain2.pem"
145 161
146 echo Create redundant-validated-chain-root.pem
147 try cp out/C2.pem ../certificates/redundant-validated-chain-root.pem
148
OLDNEW
« no previous file with comments | « net/data/ssl/certificates/multi-root-chain2.pem ('k') | net/ssl/client_cert_store_chromeos_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698