3 # Copyright 2013 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
7 # This script generates a set of test (end-entity, intermediate, root)
8 # certificates that can be used to test fetching of an intermediate via AIA.
18 try
/bin
/sh
-c "echo 01 > out/2048-sha256-root-serial"
19 touch out
/2048-sha256-root-index.txt
22 try openssl genrsa
-out out
/2048-sha256-root.key
2048
24 # Generate the root certificate
25 CA_COMMON_NAME
="Test Root CA" \
28 -key out
/2048-sha256-root.key \
29 -out out
/2048-sha256-root.req \
32 CA_COMMON_NAME
="Test Root CA" \
35 -in out
/2048-sha256-root.req \
36 -out out
/2048-sha256-root.pem \
37 -signkey out
/2048-sha256-root.key \
42 # Generate the leaf certificate requests
45 -keyout out
/expired_cert.key \
46 -out out
/expired_cert.req \
51 -keyout out
/ok_cert.key \
52 -out out
/ok_cert.req \
55 # Generate the leaf certificates
56 CA_COMMON_NAME
="Test Root CA" \
59 -extensions user_cert \
60 -startdate 060101000000Z \
61 -enddate 070101000000Z \
62 -in out
/expired_cert.req \
63 -out out
/expired_cert.pem \
66 CA_COMMON_NAME
="Test Root CA" \
69 -extensions user_cert \
72 -out out
/ok_cert.pem \
75 CA_COMMON_NAME
="Test Root CA" \
78 -extensions name_constraint_bad \
79 -subj "/CN=Leaf certificate/" \
82 -out out
/name_constraint_bad.pem \
85 CA_COMMON_NAME
="Test Root CA" \
88 -extensions name_constraint_good \
89 -subj "/CN=Leaf Certificate/" \
92 -out out
/name_constraint_good.pem \
95 try
/bin
/sh
-c "cat out/ok_cert.key out/ok_cert.pem \
96 > ../certificates/ok_cert.pem"
97 try
/bin
/sh
-c "cat out/expired_cert.key out/expired_cert.pem \
98 > ../certificates/expired_cert.pem"
99 try
/bin
/sh
-c "cat out/2048-sha256-root.key out/2048-sha256-root.pem \
100 > ../certificates/root_ca_cert.pem"
101 try
/bin
/sh
-c "cat out/ok_cert.key out/name_constraint_bad.pem \
102 > ../certificates/name_constraint_bad.pem"
103 try
/bin
/sh
-c "cat out/ok_cert.key out/name_constraint_good.pem \
104 > ../certificates/name_constraint_good.pem"
106 # Now generate the one-off certs
107 ## SHA-256 general test cert
108 try openssl req
-x509 -days 3650 \
109 -config ..
/scripts
/ee.cnf
-newkey rsa
:2048 -text \
113 ## Self-signed cert for SPDY/QUIC/HTTP2 pooling testing
114 try openssl req
-x509 -days 3650 -extensions req_spdy_pooling \
115 -config ..
/scripts
/ee.cnf
-newkey rsa
:2048 -text \
116 -out ..
/certificates
/spdy_pooling.pem
118 ## SubjectAltName parsing
119 try openssl req
-x509 -days 3650 -extensions req_san_sanity \
120 -config ..
/scripts
/ee.cnf
-newkey rsa
:2048 -text \
121 -out ..
/certificates
/subjectAltName_sanity_check.pem
124 SUBJECT_NAME
="req_punycode_dn" \
125 try openssl req
-x509 -days 3650 -extensions req_punycode \
126 -config ..
/scripts
/ee.cnf
-newkey rsa
:2048 -text \
127 -out ..
/certificates
/punycodetest.pem
129 ## Reject intranet hostnames in "publicly" trusted certs
131 SUBJECT_NAME
="req_dn" \
132 try openssl req
-x509 -days 1095 \
133 -config ..
/scripts
/ee.cnf
-newkey rsa
:2048 -text \
134 -out ..
/certificates
/reject_intranet_hosts.pem
136 ## Validity too long unit test support.
137 try openssl req
-config ..
/scripts
/ee.cnf \
138 -newkey rsa
:2048 -text -out ..
/certificates
/10_year_validity.req
139 CA_COMMON_NAME
="Test Root CA" \
142 -extensions user_cert \
143 -startdate 081030000000Z \
144 -enddate 181029000000Z \
145 -in ..
/certificates
/10_year_validity.req \
146 -out ..
/certificates
/10_year_validity.pem \
149 try openssl req
-config ..
/scripts
/ee.cnf \
150 -newkey rsa
:2048 -text -out ..
/certificates
/11_year_validity.req
151 CA_COMMON_NAME
="Test Root CA" \
154 -extensions user_cert \
155 -startdate 141030000000Z \
157 -in ..
/certificates
/11_year_validity.req \
158 -out ..
/certificates
/11_year_validity.pem \
160 try openssl req
-config ..
/scripts
/ee.cnf \
161 -newkey rsa
:2048 -text -out ..
/certificates
/39_months_after_2015_04.req
162 CA_COMMON_NAME
="Test Root CA" \
165 -extensions user_cert \
166 -startdate 150402000000Z \
167 -enddate 180702000000Z \
168 -in ..
/certificates
/39_months_after_2015_04.req \
169 -out ..
/certificates
/39_months_after_2015_04.pem \
171 try openssl req
-config ..
/scripts
/ee.cnf \
172 -newkey rsa
:2048 -text -out ..
/certificates
/40_months_after_2015_04.req
173 CA_COMMON_NAME
="Test Root CA" \
176 -extensions user_cert \
177 -startdate 150402000000Z \
178 -enddate 180801000000Z \
179 -in ..
/certificates
/40_months_after_2015_04.req \
180 -out ..
/certificates
/40_months_after_2015_04.pem \
182 try openssl req
-config ..
/scripts
/ee.cnf \
183 -newkey rsa
:2048 -text -out ..
/certificates
/60_months_after_2012_07.req
184 CA_COMMON_NAME
="Test Root CA" \
187 -extensions user_cert \
188 -startdate 141030000000Z \
189 -enddate 190930000000Z \
190 -in ..
/certificates
/60_months_after_2012_07.req \
191 -out ..
/certificates
/60_months_after_2012_07.pem \
193 try openssl req
-config ..
/scripts
/ee.cnf \
194 -newkey rsa
:2048 -text -out ..
/certificates
/61_months_after_2012_07.req
196 CA_COMMON_NAME
="Test Root CA" \
199 -extensions user_cert \
200 -startdate 141030000000Z \
202 -in ..
/certificates
/61_months_after_2012_07.req \
203 -out ..
/certificates
/61_months_after_2012_07.pem \
205 # start date after expiry date
206 try openssl req
-config ..
/scripts
/ee.cnf \
207 -newkey rsa
:2048 -text -out ..
/certificates
/start_after_expiry.req
208 CA_COMMON_NAME
="Test Root CA" \
211 -extensions user_cert \
212 -startdate 180901000000Z \
213 -enddate 150402000000Z \
214 -in ..
/certificates
/start_after_expiry.req \
215 -out ..
/certificates
/start_after_expiry.pem \
217 try openssl req
-config ..
/scripts
/ee.cnf \
218 -newkey rsa
:2048 -text -out ..
/certificates
/start_after_expiry.req
219 # Issued pre-BRs, lifetime < 120 months, expires before 2019-07-01
220 try openssl req
-config ..
/scripts
/ee.cnf \
221 -newkey rsa
:2048 -text -out ..
/certificates
/pre_br_validity_ok.req
222 CA_COMMON_NAME
="Test Root CA" \
225 -extensions user_cert \
226 -startdate 080101000000Z \
227 -enddate 150101000000Z \
228 -in ..
/certificates
/pre_br_validity_ok.req \
229 -out ..
/certificates
/pre_br_validity_ok.pem \
231 try openssl req
-config ..
/scripts
/ee.cnf \
232 -newkey rsa
:2048 -text -out ..
/certificates
/pre_br_validity_ok.req
233 # Issued pre-BRs, lifetime > 120 months, expires before 2019-07-01
234 try openssl req
-config ..
/scripts
/ee.cnf \
235 -newkey rsa
:2048 -text -out ..
/certificates
/pre_br_validity_bad_121.req
236 CA_COMMON_NAME
="Test Root CA" \
239 -extensions user_cert \
240 -startdate 080101000000Z \
241 -enddate 180501000000Z \
242 -in ..
/certificates
/pre_br_validity_bad_121.req \
243 -out ..
/certificates
/pre_br_validity_bad_121.pem \
245 try openssl req
-config ..
/scripts
/ee.cnf \
246 -newkey rsa
:2048 -text -out ..
/certificates
/pre_br_validity_bad_121.req
247 # Issued pre-BRs, lifetime < 120 months, expires after 2019-07-01
248 try openssl req
-config ..
/scripts
/ee.cnf \
249 -newkey rsa
:2048 -text -out ..
/certificates
/pre_br_validity_bad_2020.req
250 CA_COMMON_NAME
="Test Root CA" \
253 -extensions user_cert \
254 -startdate 120501000000Z \
255 -enddate 190703000000Z \
256 -in ..
/certificates
/pre_br_validity_bad_2020.req \
257 -out ..
/certificates
/pre_br_validity_bad_2020.pem \
259 try openssl req
-config ..
/scripts
/ee.cnf \
260 -newkey rsa
:2048 -text -out ..
/certificates
/pre_br_validity_bad_2020.req
263 ## Block a leaf cert directly by SPKI
264 try python crlsetutil.py
-o ..
/certificates
/crlset_by_leaf_spki.raw \
267 "BlockedBySPKI": ["../certificates/ok_cert.pem"]
271 ## Block a leaf cert by issuer-hash-and-serial (ok_cert.pem == serial 2, by
272 ## virtue of the serial file and ordering above.
273 try python crlsetutil.py
-o ..
/certificates
/crlset_by_root_serial.raw \
277 "../certificates/root_ca_cert.pem": [2]
282 ## Block a leaf cert by issuer-hash-and-serial. However, this will be issued
283 ## from an intermediate CA issued underneath a root.
284 try python crlsetutil.py
-o ..
/certificates
/crlset_by_intermediate_serial.raw \
285 <<CRLSETBYINTERMEDIATESERIAL
288 "../certificates/quic_intermediate.crt": [3]
291 CRLSETBYINTERMEDIATESERIAL