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 12- thawte.single.pem : Certificates for testing parsing of different formats. 13- login.trustwave.com.pem : 14 Certificate for testing EV with multiple OIDs. Regression test for crbug.com/705285 15 16- googlenew.chain.pem : The refreshed Google certificate 17 (valid until Sept 30 2013). 18 19- mit.davidben.der : An expired MIT client certificate. 20 21- foaf.me.chromium-test-cert.der : A client certificate for a FOAF.ME identity 22 created for testing. 23 24- unosoft_hu_cert : Certificate used by X509CertificateTest.UnoSoftCertParsing. 25 26- google_diginotar.pem 27- diginotar_public_ca_2025.pem : A certificate chain for the regression test 28 of http://crbug.com/94673 29 30- salesforce_com_test.pem 31- verisign_intermediate_ca_2011.pem 32- verisign_intermediate_ca_2016.pem : Certificates for testing two 33 X509Certificate objects that contain the same server certificate but 34 different intermediate CA certificates. The two intermediate CA 35 certificates actually represent the same intermediate CA but have 36 different validity periods. 37 38- ndn.ca.crt: "New Dream Network Certificate Authority" root certificate. 39 This is an X.509 v1 certificate that omits the version field. Used to 40 test that the certificate version gets the default value v1. 41 42- comodo.pem : A certificate chain for comodo.com which contains signed 43 certificate timestamps that conform to Chrome's Certificate Transparency 44 policy as of December 2017. 45 46- ct-test-embedded-cert.pem 47- ct-test-embedded-with-intermediate-chain.pem 48- ct-test-embedded-with-intermediate-preca-chain.pem 49- ct-test-embedded-with-preca-chain.pem 50 Test certificate chains for Certificate Transparency: Each of these 51 files contains a leaf certificate as the first certificate, which has 52 embedded SCTs, followed by the issuer certificates chain. 53 All files are from the src/test/testdada directory in 54 https://code.google.com/p/certificate-transparency/ 55 56- daltonridgeapts.com-chain.pem : A long-lived (39 month), BR compliant, 57 non-EV certificate, issued by a public trust anchor, and valid for the 58 domain daltonridgeapts.com. 59 60- gms.hongleong.com.my-verisign-chain.pem: A certificate chain for 61 gms.hongleong.com.my issued by VeriSign Class 3 Public Primary Certification 62 Authority - G5. Expires Dec 30 2019. 63- verisign_class3_g5_crosssigned.pem: The SHA1 cross-signed version of 64 VeriSign Class 3 Public Primary Certification Authority - G5 65- verisign_class3_g5_crosssigned-trusted.keychain: OSX Keychain set to Always 66 Trust the certificate in verisign_class3_g5_crosssigned.pem (Generated by 67 scripts/generate-verisign_class3_g5_crosssigned-trusted-keychain.sh) 68 69- www.ahrn.com.pem: A certificate issued by the Legacy Symantec PKI in 2014, 70 expires on 2019-10-27. 71 72- treadclimber.pem: A chain where the leaf does not contain embedded SCTs, 73 and which has a notBefore date after 2018/10/15. Expires 2020/02/07. 74- treadclimber.sctlist: The TLS encoded SignedCertificateTimestampList for the 75 treadclimber.pem leaf certificate. 76 77===== Manually generated certificates 78- client.p12 : A PKCS #12 file containing a client certificate and a private 79 key created for testing. The password is "12345". 80 81- client-nokey.p12 : A PKCS #12 file containing a client certificate (the same 82 as the one in client.p12) but no private key. The password is "12345". 83 84- client-empty-password.p12 : A PKCS #12 file containing an unencrypted client 85 certificate and a encrypted private key. The password is the empty string, 86 encoded as two zero bytes. (PKCS#12 passwords are encoded as 87 NUL-terminated UTF-16.) 88 89- client-null-password.p12 : A PKCS #12 file containing an unencrypted client 90 certificate and a encrypted private key. The password is the empty string, 91 encoded as the empty byte string. 92 93- unittest.selfsigned.der : A self-signed certificate generated using private 94 key in unittest.key.bin. The common name is "unittest". 95 96- unittest.key.bin : private key stored unencrypted. 97 98- multivalue_rdn.pem : A regression test for http://crbug.com/101009. A 99 certificate with all of the AttributeTypeAndValues stored within a single 100 RelativeDistinguishedName, rather than one AVA per RDN as normally seen. 101 102- unescaped.pem : Regression test for http://crbug.com/102839. Contains 103 characters such as '=' and '"' that would normally be escaped when 104 converting a subject/issuer name to their stringized form. 105 106- ocsp-test-root.pem : A root certificate for the code in 107 net/tools/testserver/minica.py 108 109- websocket_cacert.pem : The testing root CA for testing WebSocket client 110 certificate authentication. 111 This file is used in SSLUITest.TestWSSClientCert. 112 113- websocket_client_cert.p12 : A PKCS #12 file containing a client certificate 114 and a private key created for WebSocket testing. The password is "". 115 This file is used in SSLUITest.TestWSSClientCert. 116 117- no_subject_common_name_cert.pem: Used to test the function that generates a 118 NSS certificate nickname for a user certificate. This certificate's Subject 119 field doesn't have a common name. 120 121===== From net/data/ssl/scripts/generate-quic-chain.sh 122- quic-chain.pem 123- quic-leaf-cert.key 124- quic-leaf-cert.key.pkcs8.pem 125- quic-root.pem 126 These certificates are used by integration tests that use QUIC. 127 128- quic-leaf-cert.key.sct 129 This isn't generated and just contains a simple text file (the contents 130 don't actually matter, just the presence of the file). 131 132===== From net/data/ssl/scripts/generate-test-certs.sh 133- expired_cert.pem 134- ok_cert.pem 135- root_ca_cert.pem 136 These certificates are the common certificates used by the Python test 137 server for simulating HTTPS connections. 138 139- intermediate_ca_cert.pem 140- ok_cert_by_intermediate.pem 141 These certificates simulate a more common chain of root (root_ca_cert.pem) 142 to intermediate (intermediate_ca_cert.pem) to leaf 143 (ok_cert_by_intermediate.pem). 144 145- wildcard_.pem 146 A certificate and private key valid for *.example.org, used in various 147 net unit tests. 148 149- test_names.pem 150 A certificate and private key valid for a number of test names. See 151 [test_names] in ee.cnf. Other names may be added as needed. 152 153- name_constraint_bad.pem 154- name_constraint_good.pem 155 Two certificates used to test the built-in ability to restrict a root to 156 a particular namespace. 157 158- bad_validity.pem 159 A certificate and private key only valid on 0001-01-01. Windows refuses to 160 parse this certificate. 161 162- spdy_pooling.pem : Used to test the handling of spdy IP connection pooling 163 164- subjectAltName_sanity_check.pem : Used to test the handling of various types 165 within the subjectAltName extension of a certificate. 166 167- punycodetest.pem : A test self-signed server certificate with punycode name. 168 The common name is "xn--wgv71a119e.com" (日本語.com) 169 170- sha1_2016.pem 171 Used to test the handling of SHA1 certificates expiring in 2016. 172 173- 10_year_validity.pem 174- 11_year_validity.pem 175- 39_months_after_2015_04.pem 176- 40_months_after_2015_04.pem 177- 60_months_after_2012_07.pem 178- 61_months_after_2012_07.pem 179- pre_br_validity_bad_121.pem 180- pre_br_validity_bad_2020.pem 181- pre_br_validity_ok.pem 182- start_after_expiry.pem 183 Certs to test that the maximum validity durations set by the CA/Browser 184 Forum Baseline Requirements are enforced. 185 186- reject_intranet_hosts.pem 187 A certificate with a non-IANA delegated domain, which is rejected since a CA 188 cannot validate the applicant controls that domain. 189 190- pre_june_2016.pem 191- post_june_2016.pem 192- dec_2017.pem 193 Certs to test that policies related to enforcing CT on Symantec are 194 properly gated on the issuance date. See 195 https://g.co/chrome/symantecpkicerts. (Note, however, that the leaf and 196 root do not actually form a chain.) 197 198- may_2018.pem 199 An 825-day certificate issued on May 1, 2018, the official start of 200 enforcement requiring Certificate Transparency for new certificates. This 201 certificate does not have any embedded SCTs. 202 203- tls_feature_extension.pem 204 A certificate that contains the TLS Feature Extension. 205 206- x509_verify_results.chain.pem : A simple certificate chain used to test that 207 the correctly ordered, filtered certificate chain is returned during 208 verification, regardless of the order in which the intermediate/root CA 209 certificates are provided. 210 211===== From net/data/ssl/scripts/generate-weak-test-chains.sh 212- 2048-rsa-root.pem 213- {768-rsa,1024-rsa,2048-rsa,prime256v1-ecdsa}-intermediate.pem 214- {768-rsa,1024-rsa,2048-rsa,prime256v1-ecdsa}-ee-by- 215 {768-rsa,1024-rsa,2048-rsa,prime256v1-ecdsa}-intermediate.pem 216 Test certificates used to ensure that weak keys are detected and rejected 217 218===== From net/data/ssl/scripts/generate-cross-signed-certs.sh 219- cross-signed-leaf.pem 220- cross-signed-root-md5.pem 221- cross-signed-root-sha256.pem 222 A certificate chain for regression testing http://crbug.com/108514 223 224===== From net/data/ssl/scripts/generate-redundant-test-chains.sh 225- redundant-validated-chain.pem 226- redundant-server-chain.pem 227- redundant-validated-chain-root.pem 228 229 Two chains, A -> B -> C -> D and A -> B -> C2 (C and C2 share the same 230 public key) to test that SSLInfo gets the reconstructed, re-ordered 231 chain instead of the chain as served. See 232 SSLClientSocketTest.VerifyReturnChainProperlyOrdered in 233 net/socket/ssl_client_socket_unittest.cc. These chains are valid until 234 26 Feb 2022 and are generated by 235 net/data/ssl/scripts/generate-redundant-test-chains.sh. 236 237===== From net/data/ssl/scripts/generate-policy-certs.sh 238- explicit-policy-chain.pem 239 A test certificate chain with requireExplicitPolicy field set on the 240 intermediate, with SkipCerts=0. This is used for regression testing 241 http://crbug.com/31497. 242 243===== From net/data/ssl/scripts/generate-client-certificates.sh 244- client_1.pem 245- client_1.key 246- client_1.pk8 247- client_1_ca.pem 248- client_2.pem 249- client_2.key 250- client_2.pk8 251- client_2_ca.pem 252- client_3.pem 253- client_3.key 254- client_3.pk8 255- client_3_ca.pem 256- client_4.pem 257- client_4.key 258- client_4.pk8 259- client_4_ca.pem 260- client_5.pem 261- client_5.key 262- client_5.pk8 263- client_5_ca.pem 264- client_6.pem 265- client_6.key 266- client_6.pk8 267- client_6_ca.pem 268- client_root_ca.pem 269 This is a set of files used to unit test SSL client certificate 270 authentication. 271 - client_1_ca.pem and client_2_ca.pem are the certificates of 272 two distinct signing CAs. 273 - client_1.pem and client_1.key correspond to the certificate and 274 private key for a first certificate signed by client_1_ca.pem. 275 - client_2.pem and client_2.key correspond to the certificate and 276 private key for a second certificate signed by client_2_ca.pem. 277 - each .pk8 file contains the same key as the corresponding .key file 278 as PKCS#8 PrivateKeyInfo in DER encoding. 279 - client_3.pem is nearly identical to client_2.pem, except it is used 280 to test wifi EAP-TLS authentication so it uses a different set 281 of X509v3 extensions. Specifically it includes two Subject 282 Alternative Name fields recognized by Chrome OS. 283 - client_4.pem is similar to client_2.pem but is a P-256 ECDSA key rather 284 than RSA. 285 - client_5.pem is similar to client_2.pem but is a P-384 ECDSA key rather 286 than RSA. 287 - client_6.pem is similar to client_2.pem but is a P-521 ECDSA key rather 288 than RSA. 289 - client_root_ca.pem is the CA certificate which signed client_*_ca.pem. 290 291===== From net/data/ssl/scripts/generate-bad-eku-certs.sh 292- eku-test-root.pem 293- non-crit-codeSigning-chain.pem 294- crit-codeSigning-chain.pem 295 Two code-signing certificates (eKU: codeSigning; eKU: critical, 296 codeSigning) which we use to test that clients are making sure that web 297 server certs are checked for correct eKU fields (when an eKU field is 298 present). Since codeSigning is not valid for web server auth, the checks 299 should fail. 300 301===== From net/data/ssl/scripts/generate-multi-root-test-chains.sh 302- multi-root-chain1.pem 303- multi-root-chain2.pem 304 Two chains, A -> B -> C -> D and A -> B -> C2 -> E (C and C2 share the 305 same public key) to test that certificate validation caching does not 306 interfere with the chain_verify_callback used by CertVerifyProcChromeOS. 307 See CertVerifyProcChromeOSTest. 308 309===== From net/data/ssl/scripts/generate-multi-root-BFE-keychain.sh 310- multi-root-BFE.keychain: An OSX Keychain containing the generated 311 certificates "multi-root-B-by-F.pem" and "multi-root-F-by-E.pem". 312- multi-root.keychain: An OSX Keychain containing the generated 313 certificates multi-root-*-by-*.pem 314 315===== From net/data/ssl/scripts/generate-duplicate-cn-certs.sh 316- duplicate_cn_1.p12 317- duplicate_cn_1.pem 318- duplicate_cn_2.p12 319- duplicate_cn_2.pem 320 Two certificates from the same issuer that share the same common name, 321 but have distinct subject names (namely, their O fields differ). NSS 322 requires that certificates have unique nicknames if they do not share the 323 same subject, and these certificates are used to test that the nickname 324 generation algorithm generates unique nicknames. 325 The .pem versions contain just the certs, while the .p12 versions contain 326 both the cert and a private key, since there are multiple ways to import 327 certificates into NSS. 328 329===== From net/data/ssl/scripts/generate-aia-certs.sh 330- aia-cert.pem 331- aia-intermediate.der 332- aia-root.pem 333 A certificate chain which we use to ensure AIA fetching works correctly 334 when using NSS to verify certificates (which uses our HTTP stack). 335 aia-cert.pem has a caIssuers that points to "aia-test.invalid" as the URL 336 containing the intermediate, which can be served via a URLRequestFilter. 337 aia-intermediate.der is stored in DER form for convenience, since that is 338 the form expected of certificates discovered via AIA. 339 340===== From net/data/ssl/scripts/generate-self-signed-certs.sh 341- self-signed-invalid-name.pem 342- self-signed-invalid-sig.pem 343 Two "self-signed" certificates with mismatched names or an invalid 344 signature, respectively. 345 346===== From net/data/ssl/scripts/generate-key-usage-certs.sh 347- key_usage_rsa_no_extension.pem 348- key_usage_rsa_keyencipherment.pem 349- key_usage_rsa_digitalsignature.pem 350- key_usage_rsa_both.pem 351 Self-signed RSA certificates with various combinations of keyUsage 352 flags. Their private key is key_usage_rsa.key. 353 354- key_usage_p256_no_extension.pem 355- key_usage_p256_keyagreement.pem 356- key_usage_p256_digitalsignature.pem 357- key_usage_p256_both.pem 358 Self-signed P-256 certificates with various combinations of keyUsage 359 flags. Their private key is key_usage_p256.key. 360 361===== From net/data/ssl/scripts/generate-name-normalization-certs.py 362- name-normalization-printable-utf8.pem 363 Leaf's issuer CN is PrintableString, intermediate's subject CN is 364 UTF8String. 365- name-normalization-case-folding.pem 366 Leaf's issuer CN and intermediate's subject CN are both PrintableString 367 but have differing case on the first character. 368- name-normalization-byteequal.pem 369 Names are byte-equal. 370