blob: 1ce0317e735d7dc1b4754224a526a5b170b5655a [file] [log] [blame]
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
- thawte.single.pem : Certificates for testing parsing of different formats.
- googlenew.chain.pem : The refreshed Google certificate
(valid until Sept 30 2013).
- 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.
- unosoft_hu_cert : Certificate used by X509CertificateTest.UnoSoftCertParsing.
- 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.
- comodo.pem : A certificate chain for comodo.com which contains signed
certificate timestamps that conform to Chrome's Certificate Transparency
policy as of December 2017.
- 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/
- daltonridgeapts.com-chain.pem : A long-lived (39 month), BR compliant,
non-EV certificate, issued by a public trust anchor, and valid for the
domain daltonridgeapts.com.
- gms.hongleong.com.my-verisign-chain.pem: A certificate chain for
gms.hongleong.com.my issued by VeriSign Class 3 Public Primary Certification
Authority - G5. Expires Dec 30 2019.
- verisign_class3_g5_crosssigned.pem: The SHA1 cross-signed version of
VeriSign Class 3 Public Primary Certification Authority - G5
- verisign_class3_g5_crosssigned-trusted.keychain: OSX Keychain set to Always
Trust the certificate in verisign_class3_g5_crosssigned.pem (Generated by
scripts/generate-verisign_class3_g5_crosssigned-trusted-keychain.sh)
- www.ahrn.com.pem: A certificate issued by the Legacy Symantec PKI in 2014,
expires on 2019-10-27.
- 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.
===== 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.
- ocsp-test-root.pem : A root certificate for the code in
net/tools/testserver/minica.py
- 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.
===== 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.
- name_constraint_bad.pem
- name_constraint_good.pem
Two certificates used to test the built-in ability to restrict a root to
a particular namespace.
- 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.
- 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.
- reject_intranet_hosts.pem
A certificate with a non-IANA delegated domain, which is rejected since a CA
cannot validate the applicant controls that domain.
- 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.
- tls_feature_extension.pem
A certificate that contains the TLS Feature Extension.
- 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).
- ev-multi-oid.pem :
Certificate for testing EV with multiple OIDs. Regression test for crbug.com/705285
===== 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-policy-certs.sh
- explicit-policy-chain.pem
A test certificate chain with requireExplicitPolicy field set on the
intermediate, with SkipCerts=0. This is used for regression testing
http://crbug.com/31497.
===== 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-BFE-keychain.sh
- multi-root-BFE.keychain: An OSX Keychain containing the generated
certificates "multi-root-B-by-F.pem" and "multi-root-F-by-E.pem".
- 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-aia-certs.sh
- aia-cert.pem
- aia-intermediate.der
- aia-root.pem
A certificate chain which we use to ensure AIA fetching works correctly
when using NSS to verify certificates (which uses our HTTP stack).
aia-cert.pem has a caIssuers that points to "aia-test.invalid" as the URL
containing the intermediate, which can be served via a URLRequestFilter.
aia-intermediate.der is stored in DER form for convenience, since that is
the form expected of certificates discovered via AIA.
===== 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.
===== From net/data/ssl/scripts/generate-name-normalization-certs.py
- name-normalization-printable-utf8.pem
Leaf's issuer CN is PrintableString, intermediate's subject CN is
UTF8String.
- name-normalization-case-folding.pem
Leaf's issuer CN and intermediate's subject CN are both PrintableString
but have differing case on the first character.
- name-normalization-byteequal.pem
Names are byte-equal.