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