1This directory contains various certificates for use with SSL-related 2unit tests. 3 4===== Real-world certificates that need manual updating 5- google.binary.p7b 6- google.chain.pem 7- google.pem_cert.p7b 8- google.pem_pkcs7.p7b 9- google.pkcs7.p7b 10- google.single.der 11- google.single.pem : Certificates for testing parsing of different formats. 12 13- mit.davidben.der : An expired MIT client certificate. 14 15- foaf.me.chromium-test-cert.der : A client certificate for a FOAF.ME identity 16 created for testing. 17 18- google_diginotar.pem 19- diginotar_public_ca_2025.pem : A certificate chain for the regression test 20 of http://crbug.com/94673 21 22- salesforce_com_test.pem 23- verisign_intermediate_ca_2011.pem 24- verisign_intermediate_ca_2016.pem : Certificates for testing two 25 X509Certificate objects that contain the same server certificate but 26 different intermediate CA certificates. The two intermediate CA 27 certificates actually represent the same intermediate CA but have 28 different validity periods. 29 30- ndn.ca.crt: "New Dream Network Certificate Authority" root certificate. 31 This is an X.509 v1 certificate that omits the version field. Used to 32 test that the certificate version gets the default value v1. 33 34- ct-test-embedded-cert.pem 35- ct-test-embedded-with-intermediate-chain.pem 36- ct-test-embedded-with-intermediate-preca-chain.pem 37- ct-test-embedded-with-preca-chain.pem 38 Test certificate chains for Certificate Transparency: Each of these 39 files contains a leaf certificate as the first certificate, which has 40 embedded SCTs, followed by the issuer certificates chain. 41 All files are from the src/test/testdada directory in 42 https://code.google.com/p/certificate-transparency/ 43 44- leaf_from_known_root.pem : A certificate issued by a public trust anchor, 45 used for CertVerifyProcInternalTest.TestKnownRoot. Using for other 46 purposes is not recommended. This needs to be updated periodically so the 47 server name the cert is valid for may change. 48 49- lets-encrypt-dst-x3-root.pem: A chain that ends in the Lets encrypt DST X3 50 root (https://crt.sh/?id=8395). Has the same leaf as 51 lets-encrypt-isrg-x1-root.pem. 52- lets-encrypt-isrg-x1-root.pem: A chain that ends in the Lets encrypt ISRG X1 53 root (https://crt.sh/?id=9314791). Has the same leaf as 54 lets-encrypt-dst-x3-root.pem. 55 56===== Manually generated certificates 57- client.p12 : A PKCS #12 file containing a client certificate and a private 58 key created for testing. The password is "12345". 59 60- client-nokey.p12 : A PKCS #12 file containing a client certificate (the same 61 as the one in client.p12) but no private key. The password is "12345". 62 63- client-empty-password.p12 : A PKCS #12 file containing an unencrypted client 64 certificate and a encrypted private key. The password is the empty string, 65 encoded as two zero bytes. (PKCS#12 passwords are encoded as 66 NUL-terminated UTF-16.) 67 68- client-null-password.p12 : A PKCS #12 file containing an unencrypted client 69 certificate and a encrypted private key. The password is the empty string, 70 encoded as the empty byte string. 71 72- unittest.selfsigned.der : A self-signed certificate generated using private 73 key in unittest.key.bin. The common name is "unittest". 74 75- unittest.key.bin : private key stored unencrypted. 76 77- multivalue_rdn.pem : A regression test for http://crbug.com/101009. A 78 certificate with all of the AttributeTypeAndValues stored within a single 79 RelativeDistinguishedName, rather than one AVA per RDN as normally seen. 80 81- unescaped.pem : Regression test for http://crbug.com/102839. Contains 82 characters such as '=' and '"' that would normally be escaped when 83 converting a subject/issuer name to their stringized form. 84 85- websocket_cacert.pem : The testing root CA for testing WebSocket client 86 certificate authentication. 87 This file is used in SSLUITest.TestWSSClientCert. 88 89- websocket_client_cert.p12 : A PKCS #12 file containing a client certificate 90 and a private key created for WebSocket testing. The password is "". 91 This file is used in SSLUITest.TestWSSClientCert. 92 93- no_subject_common_name_cert.pem: Used to test the function that generates a 94 NSS certificate nickname for a user certificate. This certificate's Subject 95 field doesn't have a common name. 96 97- ct-test-embedded-with-uids.pem: A certificate with embedded SCT and 98 issuer/subject unique IDs. This certificate should only be used in parsing 99 tests and otherwise kept fixed. The signature, etc., are intentionally 100 invalid. 101 102- name_constrained_key.pem 103 The private key matching the public_key_hash of the kDomainsTest constraint 104 in CertVerifyProc::HasNameConstraintsViolation. 105 106===== From net/data/ssl/scripts/generate-quic-chain.sh 107- quic-chain.pem 108- quic-leaf-cert.key 109- quic-leaf-cert.key.pkcs8.pem 110- quic-root.pem 111 These certificates are used by integration tests that use QUIC. 112 113- quic-leaf-cert.key.sct 114 This isn't generated and just contains a simple text file (the contents 115 don't actually matter, just the presence of the file). 116 117===== From net/data/ssl/scripts/generate-test-certs.sh 118- expired_cert.pem 119- ok_cert.pem 120- root_ca_cert.pem 121 These certificates are the common certificates used by the Python test 122 server for simulating HTTPS connections. 123 124- intermediate_ca_cert.pem 125- ok_cert_by_intermediate.pem 126 These certificates simulate a more common chain of root (root_ca_cert.pem) 127 to intermediate (intermediate_ca_cert.pem) to leaf 128 (ok_cert_by_intermediate.pem). 129 130- wildcard_.pem 131 A certificate and private key valid for *.example.org, used in various 132 net unit tests. 133 134- test_names.pem 135 A certificate and private key valid for a number of test names. See 136 [test_names] in ee.cnf. Other names may be added as needed. 137 138- bad_validity.pem 139 A certificate and private key only valid on 0001-01-01. Windows refuses to 140 parse this certificate. 141 142- spdy_pooling.pem : Used to test the handling of spdy IP connection pooling 143 144- subjectAltName_sanity_check.pem : Used to test the handling of various types 145 within the subjectAltName extension of a certificate. 146 147- policies_sanity_check.pem : Used to test the parsing of various types of 148 certificatePolicies extension policyQualifiers. 149 150- punycodetest.pem : A test self-signed server certificate with punycode name. 151 The common name is "xn--wgv71a119e.com" (日本語.com) 152 153- sha1_2016.pem 154 Used to test the handling of SHA1 certificates expiring in 2016. 155 156- 10_year_validity.pem 157- 11_year_validity.pem 158- 39_months_after_2015_04.pem 159- 40_months_after_2015_04.pem 160- 60_months_after_2012_07.pem 161- 61_months_after_2012_07.pem 162- pre_br_validity_bad_121.pem 163- pre_br_validity_bad_2020.pem 164- pre_br_validity_ok.pem 165- start_after_expiry.pem 166 Certs to test that the maximum validity durations set by the CA/Browser 167 Forum Baseline Requirements are enforced. 168 169- may_2018.pem 170 An 825-day certificate issued on May 1, 2018, the official start of 171 enforcement requiring Certificate Transparency for new certificates. This 172 certificate does not have any embedded SCTs. 173 174- x509_verify_results.chain.pem : A simple certificate chain used to test that 175 the correctly ordered, filtered certificate chain is returned during 176 verification, regardless of the order in which the intermediate/root CA 177 certificates are provided. 178 179- ev_test.pem 180- ev_test_state_only.pem 181 Certificates for testing EV display (including regression test for 182 https://crbug.com/1069113). 183 184===== From net/data/ssl/scripts/generate-test-keys.sh 185- rsa-{768,1024,2048}-{1..3}.key 186- ec-prime256v1-{1..3}.key 187 Pre-generated keys of various types/sizes. 188 Useful for tests that generate RSA certificates with CertBuilder without 189 having to pay the cost of generating RSA keys at runtime. Multiple keys 190 of each size are provided. (EC keys are cheap to generate at runtime, but 191 having some as files simplifies test logic in cases where the test is 192 reading both RSA and EC keys from files.) 193 194===== From net/data/ssl/scripts/generate-redundant-test-chains.sh 195- redundant-validated-chain.pem 196- redundant-server-chain.pem 197- redundant-validated-chain-root.pem 198 199 Two chains, A -> B -> C -> D and A -> B -> C2 (C and C2 share the same 200 public key) to test that SSLInfo gets the reconstructed, re-ordered 201 chain instead of the chain as served. See 202 SSLClientSocketTest.VerifyReturnChainProperlyOrdered in 203 net/socket/ssl_client_socket_unittest.cc. These chains are valid until 204 26 Feb 2022 and are generated by 205 net/data/ssl/scripts/generate-redundant-test-chains.sh. 206 207===== From net/data/ssl/scripts/generate-client-certificates.sh 208- client_1.pem 209- client_1.key 210- client_1.pk8 211- client_1_ca.pem 212- client_2.pem 213- client_2.key 214- client_2.pk8 215- client_2_ca.pem 216- client_3.pem 217- client_3.key 218- client_3.pk8 219- client_3_ca.pem 220- client_4.pem 221- client_4.key 222- client_4.pk8 223- client_4_ca.pem 224- client_5.pem 225- client_5.key 226- client_5.pk8 227- client_5_ca.pem 228- client_6.pem 229- client_6.key 230- client_6.pk8 231- client_6_ca.pem 232- client_root_ca.pem 233 This is a set of files used to unit test SSL client certificate 234 authentication. 235 - client_1_ca.pem and client_2_ca.pem are the certificates of 236 two distinct signing CAs. 237 - client_1.pem and client_1.key correspond to the certificate and 238 private key for a first certificate signed by client_1_ca.pem. 239 - client_2.pem and client_2.key correspond to the certificate and 240 private key for a second certificate signed by client_2_ca.pem. 241 - each .pk8 file contains the same key as the corresponding .key file 242 as PKCS#8 PrivateKeyInfo in DER encoding. 243 - client_3.pem is nearly identical to client_2.pem, except it is used 244 to test wifi EAP-TLS authentication so it uses a different set 245 of X509v3 extensions. Specifically it includes two Subject 246 Alternative Name fields recognized by Chrome OS. 247 - client_4.pem is similar to client_2.pem but is a P-256 ECDSA key rather 248 than RSA. 249 - client_5.pem is similar to client_2.pem but is a P-384 ECDSA key rather 250 than RSA. 251 - client_6.pem is similar to client_2.pem but is a P-521 ECDSA key rather 252 than RSA. 253 - client_root_ca.pem is the CA certificate which signed client_*_ca.pem. 254 255===== From net/data/ssl/scripts/generate-bad-eku-certs.sh 256- eku-test-root.pem 257- non-crit-codeSigning-chain.pem 258- crit-codeSigning-chain.pem 259 Two code-signing certificates (eKU: codeSigning; eKU: critical, 260 codeSigning) which we use to test that clients are making sure that web 261 server certs are checked for correct eKU fields (when an eKU field is 262 present). Since codeSigning is not valid for web server auth, the checks 263 should fail. 264 265===== From net/data/ssl/scripts/generate-multi-root-test-chains.sh 266- multi-root-chain1.pem 267- multi-root-chain2.pem 268 Two chains, A -> B -> C -> D and A -> B -> C2 -> E (C and C2 share the 269 same public key) to test that certificate validation caching does not 270 interfere with the chain_verify_callback used by CertVerifyProcChromeOS. 271 See CertVerifyProcChromeOSTest. 272 273===== From net/data/ssl/scripts/generate-multi-root-keychain.sh 274- multi-root.keychain: An OSX Keychain containing the generated 275 certificates multi-root-*-by-*.pem 276 277===== From net/data/ssl/scripts/generate-duplicate-cn-certs.sh 278- duplicate_cn_1.p12 279- duplicate_cn_1.pem 280- duplicate_cn_2.p12 281- duplicate_cn_2.pem 282 Two certificates from the same issuer that share the same common name, 283 but have distinct subject names (namely, their O fields differ). NSS 284 requires that certificates have unique nicknames if they do not share the 285 same subject, and these certificates are used to test that the nickname 286 generation algorithm generates unique nicknames. 287 The .pem versions contain just the certs, while the .p12 versions contain 288 both the cert and a private key, since there are multiple ways to import 289 certificates into NSS. 290 291===== From net/data/ssl/scripts/generate-self-signed-certs.sh 292- self-signed-invalid-name.pem 293- self-signed-invalid-sig.pem 294 Two "self-signed" certificates with mismatched names or an invalid 295 signature, respectively. 296 297===== From net/data/ssl/scripts/generate-key-usage-certs.sh 298- key_usage_rsa_no_extension.pem 299- key_usage_rsa_keyencipherment.pem 300- key_usage_rsa_digitalsignature.pem 301- key_usage_rsa_both.pem 302 Self-signed RSA certificates with various combinations of keyUsage 303 flags. Their private key is key_usage_rsa.key. 304 305- key_usage_p256_no_extension.pem 306- key_usage_p256_keyagreement.pem 307- key_usage_p256_digitalsignature.pem 308- key_usage_p256_both.pem 309 Self-signed P-256 certificates with various combinations of keyUsage 310 flags. Their private key is key_usage_p256.key. 311