xref: /aosp_15_r20/external/cronet/net/docs/certificate_lifetimes.md (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Certificate Lifetimes
2*6777b538SAndroid Build Coastguard Worker
3*6777b538SAndroid Build Coastguard WorkerAs part of our ongoing commitment to ensuring users’ security, Google is
4*6777b538SAndroid Build Coastguard Workerreducing the maximum allowed lifetimes of TLS certificates.
5*6777b538SAndroid Build Coastguard Worker
6*6777b538SAndroid Build Coastguard Worker## Upcoming Changes
7*6777b538SAndroid Build Coastguard Worker
8*6777b538SAndroid Build Coastguard WorkerBeginning with Chrome 85, TLS server certificates issued on or after
9*6777b538SAndroid Build Coastguard Worker2020-09-01 00:00:00 UTC will be required to have a validity period of 398 days
10*6777b538SAndroid Build Coastguard Workeror less. This will only apply to TLS server certificates from CAs that are
11*6777b538SAndroid Build Coastguard Workertrusted in a default installation of Google Chrome, commonly known as
12*6777b538SAndroid Build Coastguard Worker"publicly trusted CAs", and will not apply to locally-operated CAs that have
13*6777b538SAndroid Build Coastguard Workerbeen manually configured.
14*6777b538SAndroid Build Coastguard Worker
15*6777b538SAndroid Build Coastguard WorkerCertificates that do not comply with this requirement will not work, and may
16*6777b538SAndroid Build Coastguard Workercause webpages to fail to load or to render incorrectly.
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard WorkerIf a certificate that does not comply with this requirement is issued by a CA
19*6777b538SAndroid Build Coastguard Workertrusted in a default installation of Google Chrome, this will be treated as a
20*6777b538SAndroid Build Coastguard Workerfailure to comply with the security policies necessary to being a trusted CA,
21*6777b538SAndroid Build Coastguard Workerand may result in the removal of trust of that CA’s certificates.
22*6777b538SAndroid Build Coastguard Worker
23*6777b538SAndroid Build Coastguard Worker## Technical Details
24*6777b538SAndroid Build Coastguard Worker
25*6777b538SAndroid Build Coastguard Worker* A certificate will be impacted by this restriction if either the notBefore
26*6777b538SAndroid Build Coastguard Worker  of the certificate is on or after 2020-09-01 00:00:00 UTC, or if the first
27*6777b538SAndroid Build Coastguard Worker  precertificate logged by the CA to a Certificate Transparency Log that is
28*6777b538SAndroid Build Coastguard Worker  qualified at time of issuance is on or after this date.
29*6777b538SAndroid Build Coastguard Worker* The validity period of a certificate is defined within RFC 5280, Section
30*6777b538SAndroid Build Coastguard Worker  4.1.2.5, as "the period of time from notBefore through notAfter, inclusive."
31*6777b538SAndroid Build Coastguard Worker* 398 days is measured with a day being equal to 86,400 seconds. Any time
32*6777b538SAndroid Build Coastguard Worker  greater than this indicates an additional day of validity.
33*6777b538SAndroid Build Coastguard Worker* To avoid the risk of misissuance, such as due to leap seconds or
34*6777b538SAndroid Build Coastguard Worker  CA-configured randomization, CAs SHOULD issue such server certificates with
35*6777b538SAndroid Build Coastguard Worker  validity periods of 397 days or less.
36*6777b538SAndroid Build Coastguard Worker
37*6777b538SAndroid Build Coastguard Worker## Frequently Asked Questions
38*6777b538SAndroid Build Coastguard Worker
39*6777b538SAndroid Build Coastguard Worker* Why is Chrome making this change?
40*6777b538SAndroid Build Coastguard Worker  * Shortening certificate lifetimes protects users by reducing the impact
41*6777b538SAndroid Build Coastguard Worker    of compromised keys, and by speeding up the replacement of insecure
42*6777b538SAndroid Build Coastguard Worker    technologies and practices across the web. Key compromises and the
43*6777b538SAndroid Build Coastguard Worker    discovery of internet security weaknesses are common events that can lead
44*6777b538SAndroid Build Coastguard Worker    to real-world harm, and the web’s users should be better protected against
45*6777b538SAndroid Build Coastguard Worker    them.
46*6777b538SAndroid Build Coastguard Worker* Does this apply to locally-operated CAs, such as those used within
47*6777b538SAndroid Build Coastguard Worker  enterprises that use enterprise-configured configured CAs?
48*6777b538SAndroid Build Coastguard Worker  * No. This only applies to the set of CAs that are trusted by default by
49*6777b538SAndroid Build Coastguard Worker    Google Chrome, and not CAs that are operated by an enterprise and that
50*6777b538SAndroid Build Coastguard Worker    have no certification paths to CAs that are trusted by default.
51*6777b538SAndroid Build Coastguard Worker* Is there an enterprise policy to disable this enforcement?
52*6777b538SAndroid Build Coastguard Worker  * No. These changes are transparent and do not offer an enterprise control
53*6777b538SAndroid Build Coastguard Worker    to override, as they only apply to so-called "publicly trusted" CAs.
54*6777b538SAndroid Build Coastguard Worker    Enterprises that wish to have certificates with validity periods longer
55*6777b538SAndroid Build Coastguard Worker    than 398 days may do so by using a locally-operated CA that does not have
56*6777b538SAndroid Build Coastguard Worker    any certification paths up to a publicly trusted CA.
57*6777b538SAndroid Build Coastguard Worker* Does this mean I have to replace my existing certificates?
58*6777b538SAndroid Build Coastguard Worker  * No. This requirement only applies to new certificate issuance on or after
59*6777b538SAndroid Build Coastguard Worker    2020-09-01 00:00:00 UTC. Existing certificates whose validity period
60*6777b538SAndroid Build Coastguard Worker    exceeds 398 days will continue to work, while new certificates must comply
61*6777b538SAndroid Build Coastguard Worker    with these new requirements, such as when they are renewed or replaced.
62*6777b538SAndroid Build Coastguard Worker* Will this make certificates more expensive?
63*6777b538SAndroid Build Coastguard Worker  * As with past changes to the maximum certificate lifetimes, many CAs have
64*6777b538SAndroid Build Coastguard Worker    committed to providing additional certificates, as needed by the shortened
65*6777b538SAndroid Build Coastguard Worker    maximum lifetime, at no additional cost.
66*6777b538SAndroid Build Coastguard Worker* What will happen if a certificate is issued that does not meet these
67*6777b538SAndroid Build Coastguard Worker  requirements?
68*6777b538SAndroid Build Coastguard Worker  * Google Chrome will reject such certificates as having too long a validity
69*6777b538SAndroid Build Coastguard Worker    period, consistent with existing validity-period based enforcement.
70*6777b538SAndroid Build Coastguard Worker    Additionally, such certificates will be treated as a critical security
71*6777b538SAndroid Build Coastguard Worker    failure by the CA, and may result in further action taken on the CA that
72*6777b538SAndroid Build Coastguard Worker    may affect how current or future certificates from that CA function.
73*6777b538SAndroid Build Coastguard Worker    Chromium-based browsers will have this enforcement enabled by default, and
74*6777b538SAndroid Build Coastguard Worker    will need to modify the source to disable this.
75*6777b538SAndroid Build Coastguard Worker* What are other browsers doing?
76*6777b538SAndroid Build Coastguard Worker  * Apple previously announced this change for versions of iOS, iPadOS, macOS,
77*6777b538SAndroid Build Coastguard Worker    tvOS, and watchOS, as documented at
78*6777b538SAndroid Build Coastguard Worker    https://support.apple.com/en-us/HT211025, which will apply to all
79*6777b538SAndroid Build Coastguard Worker    applications, and not just those of Safari. This certificate lifetime
80*6777b538SAndroid Build Coastguard Worker    requirement is fully interoperable with Apple’s requirements.
81*6777b538SAndroid Build Coastguard Worker
82*6777b538SAndroid Build Coastguard Worker    Microsoft, Mozilla, Opera, and 360 have previously indicated their support
83*6777b538SAndroid Build Coastguard Worker    for these requirements, although have not yet made announcements at the
84*6777b538SAndroid Build Coastguard Worker    time of this post (2020-06-22). Other browsers, including those browsers
85*6777b538SAndroid Build Coastguard Worker    based on Chromium, may provide additional guidance or clarification.
86