Why do SSL certificates usually expire after a certain given period of time?Can't it really be a thing of once applied and verified, then it should be a lifetime venture?
An X.509 certificate (not SSL certificate that everyone talks about, SSL is dead since 20 years, and certificates can be used outside of the TLS world, and TLS can be done without certificates also) can describe (authenticate) various different entities: a domain name, an individual, an organization, an email, an IP address, etc.
It can also be issued through different kind of validation mechanisms: DV, OV, or EV for example.
In all cases, control/existence of a given thing (control of a domain, existence of an entity or a person, etc.) changes over time. So it makes sense to revalidate things.
Imagine I get a certificate for
lifetime.example domain name. But then I transfer the domain name to someone else. Or I forget to renew it (and hence anybody else is able to register it). Or I die. Some reasons among many where at that point the certificate legitimacy should be questioned and hence it should be re-issued. And for that to matter the previous certificate should be time-limited (there are mechanisms to revoke existing certificates but in practice that does not work well enough).
This is exactly the same case as in real life: why do all governmental-issued proof of identity expire? Why do you have to redo your passport, national identity card and so on each 5 or 10 years?
Also, certificates use cryptography. In theory, a brute force attack would at least in "some time" be able to find out the private key out of the public key (only part being in the certificate). So the common belief is that it is good to renew the cryptographic material "from time to time".
This also allows phasing out deprecated algorithms, like a switch from SHA-1 to SHA-256 based signatures in certificates.
The above points are also exactly what is detailed at https://comodosslstore.com/blog/why-you-cant-ssl-certificate-for-more-than-3-years.html
Of course the cynics will say that this also enables CA to just bill you annually (but then there are now CAs delivering DV certificates for free...).
You can read at https://letsencrypt.org/2015/11/09/why-90-days.html some explanation on why Let's Encrypt certificate are valid for only 90 days:
From our perspective, there are two primary advantages to such short certificate lifetimes:
- They limit damage from key compromise and mis-issuance. Stolen keys and mis-issued certificates are valid for a shorter period of time.
- They encourage automation, which is absolutely essential for ease-of-use. If we’re going to move the entire Web to HTTPS, we can’t continue to expect system administrators to manually handle renewals. Once issuance and renewal are automated, shorter lifetimes won’t be any less convenient than longer ones.
One of the key document used by all major CA (the so called CAB Forum Baselines Requirements) has put in place limits in validity on certificates:
- on 2015-04-01: "CAs SHALL NOT issue certificates with validity periods longer than 39 months, except under certain circumstances." (in the past it was 5 years)
- on 2016-06-30: "CAs MUST NOT issue Subscriber Certificates with validity periods longer than 39 months, regardless of circumstance"
- on 2018-03-01: "Certificates issued MUST have a Validity Period no greater than 825 days and re-use of validation information limited to 825 days" (this was already enacted like that for EV certificates on 2017-04-22)