| This directory contains various certificates for use with SSL-related |
| unit tests. |
| |
| ===== Real-world certificates that need manual updating |
| - google.binary.p7b |
| - google.chain.pem |
| - google.pem_cert.p7b |
| - google.pem_pkcs7.p7b |
| - google.pkcs7.p7b |
| - google.single.der |
| - google.single.pem : Certificates for testing parsing of different formats. |
| |
| - mit.davidben.der : An expired MIT client certificate. |
| |
| - foaf.me.chromium-test-cert.der : A client certificate for a FOAF.ME identity |
| created for testing. |
| |
| - google_diginotar.pem |
| - diginotar_public_ca_2025.pem : A certificate chain for the regression test |
| of http://crbug.com/94673 |
| |
| - salesforce_com_test.pem |
| - verisign_intermediate_ca_2011.pem |
| - verisign_intermediate_ca_2016.pem : Certificates for testing two |
| X509Certificate objects that contain the same server certificate but |
| different intermediate CA certificates. The two intermediate CA |
| certificates actually represent the same intermediate CA but have |
| different validity periods. |
| |
| - ndn.ca.crt: "New Dream Network Certificate Authority" root certificate. |
| This is an X.509 v1 certificate that omits the version field. Used to |
| test that the certificate version gets the default value v1. |
| |
| - ct-test-embedded-cert.pem |
| - ct-test-embedded-with-intermediate-chain.pem |
| - ct-test-embedded-with-intermediate-preca-chain.pem |
| - ct-test-embedded-with-preca-chain.pem |
| Test certificate chains for Certificate Transparency: Each of these |
| files contains a leaf certificate as the first certificate, which has |
| embedded SCTs, followed by the issuer certificates chain. |
| All files are from the src/test/testdada directory in |
| https://code.google.com/p/certificate-transparency/ |
| |
| - leaf_from_known_root.pem : A certificate issued by a public trust anchor, |
| used for CertVerifyProcInternalTest.TestKnownRoot. Using for other |
| purposes is not recommended. This needs to be updated periodically so the |
| server name the cert is valid for may change. |
| |
| - treadclimber.pem: A chain where the leaf does not contain embedded SCTs, |
| and which has a notBefore date after 2018/10/15. Expires 2020/02/07. |
| - treadclimber.sctlist: The TLS encoded SignedCertificateTimestampList for the |
| treadclimber.pem leaf certificate. |
| - lets-encrypt-dst-x3-root.pem: A chain that ends in the Lets encrypt DST X3 |
| root (https://crt.sh/?id=8395). Has the same leaf as |
| lets-encrypt-isrg-x1-root.pem. |
| - lets-encrypt-isrg-x1-root.pem: A chain that ends in the Lets encrypt ISRG X1 |
| root (https://crt.sh/?id=9314791). Has the same leaf as |
| lets-encrypt-dst-x3-root.pem. |
| |
| ===== Manually generated certificates |
| - client.p12 : A PKCS #12 file containing a client certificate and a private |
| key created for testing. The password is "12345". |
| |
| - client-nokey.p12 : A PKCS #12 file containing a client certificate (the same |
| as the one in client.p12) but no private key. The password is "12345". |
| |
| - client-empty-password.p12 : A PKCS #12 file containing an unencrypted client |
| certificate and a encrypted private key. The password is the empty string, |
| encoded as two zero bytes. (PKCS#12 passwords are encoded as |
| NUL-terminated UTF-16.) |
| |
| - client-null-password.p12 : A PKCS #12 file containing an unencrypted client |
| certificate and a encrypted private key. The password is the empty string, |
| encoded as the empty byte string. |
| |
| - unittest.selfsigned.der : A self-signed certificate generated using private |
| key in unittest.key.bin. The common name is "unittest". |
| |
| - unittest.key.bin : private key stored unencrypted. |
| |
| - multivalue_rdn.pem : A regression test for http://crbug.com/101009. A |
| certificate with all of the AttributeTypeAndValues stored within a single |
| RelativeDistinguishedName, rather than one AVA per RDN as normally seen. |
| |
| - unescaped.pem : Regression test for http://crbug.com/102839. Contains |
| characters such as '=' and '"' that would normally be escaped when |
| converting a subject/issuer name to their stringized form. |
| |
| - websocket_cacert.pem : The testing root CA for testing WebSocket client |
| certificate authentication. |
| This file is used in SSLUITest.TestWSSClientCert. |
| |
| - websocket_client_cert.p12 : A PKCS #12 file containing a client certificate |
| and a private key created for WebSocket testing. The password is "". |
| This file is used in SSLUITest.TestWSSClientCert. |
| |
| - no_subject_common_name_cert.pem: Used to test the function that generates a |
| NSS certificate nickname for a user certificate. This certificate's Subject |
| field doesn't have a common name. |
| |
| - ct-test-embedded-with-uids.pem: A certificate with embedded SCT and |
| issuer/subject unique IDs. This certificate should only be used in parsing |
| tests and otherwise kept fixed. The signature, etc., are intentionally |
| invalid. |
| |
| - name_constrained_key.pem |
| The private key matching the public_key_hash of the kDomainsTest constraint |
| in CertVerifyProc::HasNameConstraintsViolation. |
| |
| ===== From net/data/ssl/scripts/generate-quic-chain.sh |
| - quic-chain.pem |
| - quic-leaf-cert.key |
| - quic-leaf-cert.key.pkcs8.pem |
| - quic-root.pem |
| These certificates are used by integration tests that use QUIC. |
| |
| - quic-leaf-cert.key.sct |
| This isn't generated and just contains a simple text file (the contents |
| don't actually matter, just the presence of the file). |
| |
| ===== From net/data/ssl/scripts/generate-test-certs.sh |
| - expired_cert.pem |
| - ok_cert.pem |
| - root_ca_cert.pem |
| These certificates are the common certificates used by the Python test |
| server for simulating HTTPS connections. |
| |
| - intermediate_ca_cert.pem |
| - ok_cert_by_intermediate.pem |
| These certificates simulate a more common chain of root (root_ca_cert.pem) |
| to intermediate (intermediate_ca_cert.pem) to leaf |
| (ok_cert_by_intermediate.pem). |
| |
| - wildcard_.pem |
| A certificate and private key valid for *.example.org, used in various |
| net unit tests. |
| |
| - test_names.pem |
| A certificate and private key valid for a number of test names. See |
| [test_names] in ee.cnf. Other names may be added as needed. |
| |
| - bad_validity.pem |
| A certificate and private key only valid on 0001-01-01. Windows refuses to |
| parse this certificate. |
| |
| - spdy_pooling.pem : Used to test the handling of spdy IP connection pooling |
| |
| - subjectAltName_sanity_check.pem : Used to test the handling of various types |
| within the subjectAltName extension of a certificate. |
| |
| - policies_sanity_check.pem : Used to test the parsing of various types of |
| certificatePolicies extension policyQualifiers. |
| |
| - punycodetest.pem : A test self-signed server certificate with punycode name. |
| The common name is "xn--wgv71a119e.com" (日本語.com) |
| |
| - sha1_2016.pem |
| Used to test the handling of SHA1 certificates expiring in 2016. |
| |
| - 10_year_validity.pem |
| - 11_year_validity.pem |
| - 39_months_after_2015_04.pem |
| - 40_months_after_2015_04.pem |
| - 60_months_after_2012_07.pem |
| - 61_months_after_2012_07.pem |
| - pre_br_validity_bad_121.pem |
| - pre_br_validity_bad_2020.pem |
| - pre_br_validity_ok.pem |
| - start_after_expiry.pem |
| Certs to test that the maximum validity durations set by the CA/Browser |
| Forum Baseline Requirements are enforced. |
| |
| - pre_june_2016.pem |
| - post_june_2016.pem |
| - dec_2017.pem |
| Certs to test that policies related to enforcing CT on Symantec are |
| properly gated on the issuance date. See |
| https://g.co/chrome/symantecpkicerts. (Note, however, that the leaf and |
| root do not actually form a chain.) |
| |
| - may_2018.pem |
| An 825-day certificate issued on May 1, 2018, the official start of |
| enforcement requiring Certificate Transparency for new certificates. This |
| certificate does not have any embedded SCTs. |
| |
| - x509_verify_results.chain.pem : A simple certificate chain used to test that |
| the correctly ordered, filtered certificate chain is returned during |
| verification, regardless of the order in which the intermediate/root CA |
| certificates are provided. |
| |
| - ev_test.pem |
| - ev_test_state_only.pem |
| Certificates for testing EV display (including regression test for |
| https://crbug.com/1069113). |
| |
| ===== From net/data/ssl/scripts/generate-weak-test-chains.sh |
| - 2048-rsa-root.pem |
| - {768-rsa,1024-rsa,2048-rsa,prime256v1-ecdsa}-intermediate.pem |
| - {768-rsa,1024-rsa,2048-rsa,prime256v1-ecdsa}-ee-by- |
| {768-rsa,1024-rsa,2048-rsa,prime256v1-ecdsa}-intermediate.pem |
| Test certificates used to ensure that weak keys are detected and rejected |
| |
| ===== From net/data/ssl/scripts/generate-cross-signed-certs.sh |
| - cross-signed-leaf.pem |
| - cross-signed-root-md5.pem |
| - cross-signed-root-sha256.pem |
| A certificate chain for regression testing http://crbug.com/108514 |
| |
| ===== From net/data/ssl/scripts/generate-redundant-test-chains.sh |
| - redundant-validated-chain.pem |
| - redundant-server-chain.pem |
| - redundant-validated-chain-root.pem |
| |
| Two chains, A -> B -> C -> D and A -> B -> C2 (C and C2 share the same |
| public key) to test that SSLInfo gets the reconstructed, re-ordered |
| chain instead of the chain as served. See |
| SSLClientSocketTest.VerifyReturnChainProperlyOrdered in |
| net/socket/ssl_client_socket_unittest.cc. These chains are valid until |
| 26 Feb 2022 and are generated by |
| net/data/ssl/scripts/generate-redundant-test-chains.sh. |
| |
| ===== From net/data/ssl/scripts/generate-client-certificates.sh |
| - client_1.pem |
| - client_1.key |
| - client_1.pk8 |
| - client_1_ca.pem |
| - client_2.pem |
| - client_2.key |
| - client_2.pk8 |
| - client_2_ca.pem |
| - client_3.pem |
| - client_3.key |
| - client_3.pk8 |
| - client_3_ca.pem |
| - client_4.pem |
| - client_4.key |
| - client_4.pk8 |
| - client_4_ca.pem |
| - client_5.pem |
| - client_5.key |
| - client_5.pk8 |
| - client_5_ca.pem |
| - client_6.pem |
| - client_6.key |
| - client_6.pk8 |
| - client_6_ca.pem |
| - client_root_ca.pem |
| This is a set of files used to unit test SSL client certificate |
| authentication. |
| - client_1_ca.pem and client_2_ca.pem are the certificates of |
| two distinct signing CAs. |
| - client_1.pem and client_1.key correspond to the certificate and |
| private key for a first certificate signed by client_1_ca.pem. |
| - client_2.pem and client_2.key correspond to the certificate and |
| private key for a second certificate signed by client_2_ca.pem. |
| - each .pk8 file contains the same key as the corresponding .key file |
| as PKCS#8 PrivateKeyInfo in DER encoding. |
| - client_3.pem is nearly identical to client_2.pem, except it is used |
| to test wifi EAP-TLS authentication so it uses a different set |
| of X509v3 extensions. Specifically it includes two Subject |
| Alternative Name fields recognized by Chrome OS. |
| - client_4.pem is similar to client_2.pem but is a P-256 ECDSA key rather |
| than RSA. |
| - client_5.pem is similar to client_2.pem but is a P-384 ECDSA key rather |
| than RSA. |
| - client_6.pem is similar to client_2.pem but is a P-521 ECDSA key rather |
| than RSA. |
| - client_root_ca.pem is the CA certificate which signed client_*_ca.pem. |
| |
| ===== From net/data/ssl/scripts/generate-bad-eku-certs.sh |
| - eku-test-root.pem |
| - non-crit-codeSigning-chain.pem |
| - crit-codeSigning-chain.pem |
| Two code-signing certificates (eKU: codeSigning; eKU: critical, |
| codeSigning) which we use to test that clients are making sure that web |
| server certs are checked for correct eKU fields (when an eKU field is |
| present). Since codeSigning is not valid for web server auth, the checks |
| should fail. |
| |
| ===== From net/data/ssl/scripts/generate-multi-root-test-chains.sh |
| - multi-root-chain1.pem |
| - multi-root-chain2.pem |
| Two chains, A -> B -> C -> D and A -> B -> C2 -> E (C and C2 share the |
| same public key) to test that certificate validation caching does not |
| interfere with the chain_verify_callback used by CertVerifyProcChromeOS. |
| See CertVerifyProcChromeOSTest. |
| |
| ===== From net/data/ssl/scripts/generate-multi-root-keychain.sh |
| - multi-root.keychain: An OSX Keychain containing the generated |
| certificates multi-root-*-by-*.pem |
| |
| ===== From net/data/ssl/scripts/generate-duplicate-cn-certs.sh |
| - duplicate_cn_1.p12 |
| - duplicate_cn_1.pem |
| - duplicate_cn_2.p12 |
| - duplicate_cn_2.pem |
| Two certificates from the same issuer that share the same common name, |
| but have distinct subject names (namely, their O fields differ). NSS |
| requires that certificates have unique nicknames if they do not share the |
| same subject, and these certificates are used to test that the nickname |
| generation algorithm generates unique nicknames. |
| The .pem versions contain just the certs, while the .p12 versions contain |
| both the cert and a private key, since there are multiple ways to import |
| certificates into NSS. |
| |
| ===== From net/data/ssl/scripts/generate-self-signed-certs.sh |
| - self-signed-invalid-name.pem |
| - self-signed-invalid-sig.pem |
| Two "self-signed" certificates with mismatched names or an invalid |
| signature, respectively. |
| |
| ===== From net/data/ssl/scripts/generate-key-usage-certs.sh |
| - key_usage_rsa_no_extension.pem |
| - key_usage_rsa_keyencipherment.pem |
| - key_usage_rsa_digitalsignature.pem |
| - key_usage_rsa_both.pem |
| Self-signed RSA certificates with various combinations of keyUsage |
| flags. Their private key is key_usage_rsa.key. |
| |
| - key_usage_p256_no_extension.pem |
| - key_usage_p256_keyagreement.pem |
| - key_usage_p256_digitalsignature.pem |
| - key_usage_p256_both.pem |
| Self-signed P-256 certificates with various combinations of keyUsage |
| flags. Their private key is key_usage_p256.key. |