Skip to content

Assume Every Certificate Expires

Module 7 of 7 in the shared chapter Keys, Certificates and Trust, chapter 3 of Securing Salesforce: Identity and Access and chapter 12 of Integration Architect. Each module stands on its own.

The question this module answers: Every certificate in this chapter has an end date. Why, what does replacing one mean, how does Salesforce issue and store certificates, and what breaks when one runs out?

Go to any website you trust, click the padlock in the address bar, and open the certificate. You’ll see who it was issued to, who issued it, the public key, and two dates. Not before, and not after. That’s how long this certificate is good for.

Every certificate has those two dates. Steve’s Plumbing’s certificate has them. Salesforce’s has them. The certificate authority’s own certificate has them too, just much further apart. So here’s the rule I give every class: assume all certificates expire. That’s key hygiene. Don’t treat a certificate as something you install once. Treat it as something you’ll replace, on a date you already know.

It seems like extra work. Why not issue a certificate that lasts forever? Three reasons.

A stolen key stops working by itself. If someone copies a private key, every day the certificate is still valid is a day they can pretend to be you. An end date puts a limit on that, even if nobody ever notices the theft.

Algorithms retire. You saw it in module 1 with DES, and in module 3 with SHA-1. Key sizes that were strong ten years ago aren’t today. A certificate that ends forces everyone to pick up today’s algorithms and today’s key sizes when they replace it.

Taking a certificate back is hard. A certificate authority can revoke a certificate before its end date, and publish that it did. But every browser and every server then has to check, every time, and the checks have always been slow and unreliable. In 2025, Let’s Encrypt, one of the largest certificate authorities, stopped running its online revocation check altogether, “primarily because it represents a considerable risk to privacy.” The industry’s answer is simpler: make certificates short-lived, so a bad one doesn’t live long.

When a certificate is near its end, you don’t extend it. You reissue it: a new certificate, usually with a new key pair, signed again.

You already know how that’s done safely, from module 6. Whoever holds the certificate makes a new key pair and keeps the new private key. It sends a signing request, its name and its new public key, to the certificate authority. The authority signs it and sends back the new certificate. The private key never travels.

Then comes the part people forget. The new certificate has to go everywhere the old one was. Every server that presents it. Every partner that installed it in their keystore. Every identity provider that checks a signature with it. Miss one, and that one stops working on the old certificate’s “not after” date.

For years, a public website certificate could last up to 398 days, about thirteen months. Renew it once a year and you were fine. That’s changing.

The browser makers and the certificate authorities set the rules for public certificates together, in a group called the CA/Browser Forum. In April 2025, they voted to cut the maximum lifetime in steps. The certificate authorities voted 25 in favour, none against, with 5 abstaining; all four browser makers, Apple, Google, Microsoft and Mozilla, voted in favour. Here’s the schedule, from the Forum’s Baseline Requirements, version 2.3.1:

Certificate issuedMaximum lifetimeRenewals a year, roughly
Before 2026-03-15398 days1
2026-03-15 to 2027-03-14200 days2
2027-03-15 to 2029-03-14100 days4
From 2029-03-1547 days8
The shrinking certificate A chart of the maximum lifetime of a public certificate, drawn as columns of squares, each square standing for 10 days. Certificates issued before 15 March 2026 could last 398 days, about one renewal a year. From 15 March 2026, 200 days, about two a year. From 15 March 2027, 100 days, about four a year. From 15 March 2029, 47 days, about eight a year, the one dark column. Underneath: the CA/Browser Forum Baseline Requirements, version 2.3.1, section 6.3.2; the limit depends on the day a certificate is issued. {"author": "Steve Simpson", "blueprint": "1.0.0", "builder": "standard 1.57.1", "built": "2026-11-03", "id": "DGM-IAM-TR-11", "rights": "\u00a9 2026 Twinshark LLC. All rights reserved.", "template": "units 0.3.0", "theme": "stevetecharc 1.4.0"} each square = 10 days of a public certificate's maximum life 398 398 days issued before 2026-03-15 · about 1 renewal a year 200 200 days from 2026-03-15 · about 2 a year 100 100 days from 2027-03-15 · about 4 a year 47 47 days from 2029-03-15 · about 8 a year CA/Browser Forum Baseline Requirements 2.3.1, section 6.3.2. The limit depends on the day a certificate is issued. Squares are rounded to the nearest 10 days. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Salesforce gives its own example. A certificate created on 1 June 2025 could last until 4 July 2026. One created on 1 June 2026 lasts only until 18 December 2026.

Look at the last column. Once a year, a person can remember. Eight times a year, for every certificate you own, a person will forget. That’s the real message of the schedule: renewing certificates is becoming machine work. Know where every certificate is, and automate the renewals wherever you can.

How Salesforce issues and stores certificates

Section titled “How Salesforce issues and stores certificates”

In Salesforce, certificates live in Setup, in Certificate and Key Management. There are two kinds you create there.

A self-signed certificate. Salesforce makes the key pair and signs the certificate itself, “to show that communications purporting to come from your organization are really coming from there.” No outside authority is involved, so it’s free, and it’s what you share with a partner who installs it on purpose, as in module 6 when Salesforce calls out. It lasts one year with a 2048- or 3072-bit key, or two years with a 4096-bit key. Because no public authority signs it, the shrinking public lifetimes don’t apply to it. An org can hold up to 50 certificates; Salesforce Support can raise that.

A CA-signed certificate. Salesforce makes the key pair and a signing request. You send the request to a certificate authority, it signs it, and you upload the signed certificate back into Salesforce. The private key stays in Salesforce the whole time. Use this when the other side needs a public authority to vouch for you. It lasts as long as the authority allows, so it follows the public lifetimes in the table.

The same page holds a few more things you’ll meet in this course:

  • Mutual authentication certificates: the client certificates that systems calling in with two-way TLS must present (module 6).
  • Keystore import and export: to move certificates and their keys between orgs, for example from a sandbox to production.
  • The Certificate Trust Store: your org’s own list of root certificates, including private ones, for checking TLS connections coming in. In Salesforce’s words, it’s for “inbound TLS connections (not inbound mTLS)”: as module 6 showed, two-way TLS into Salesforce accepts public roots only.

Salesforce sends warning emails before a certificate in your org expires. If nobody has the Receive Certificate Expiration Notifications permission, every user with System Administrator or Modify All Data gets every warning. Once you give it to at least one admin, those admins get the emails 60, 30 and 10 days before, and everyone else hears only the day before, and on the day itself. So give that permission, on purpose, to the people who will actually do the renewal. A warning the day before is a warning that comes too late.

Salesforce’s own certificates, the ones its login pages and APIs present, are Salesforce’s job. Salesforce says it “typically rotates” them “at least 45 days before they expire.” Your job is not to get in the way. Salesforce “strongly recommends against certificate pinning”, which means hard-coding one particular certificate into a client instead of trusting the root it chains to. A pinned client breaks the day Salesforce replaces its certificate. Trust the root, as module 4 taught, and the replacement is invisible.

When a certificate passes its “not after” date, nothing slows down gently. The check fails, and the connection or the sign-in stops. Here’s where that bites in this course:

  • Single sign-on. The identity provider signs every login with its certificate, and Salesforce checks it (the Identity and Access course, chapter 6). An expired one, or a reissued one Salesforce was never given, and nobody signs in. Salesforce has retired its old proxy.salesforce.com default certificate, “due to its expiration and for security best practices”, and tells orgs still using it for single sign-on to “act now to prevent a possible interruption of service.”
  • The JWT bearer flow. An integration signs its request with a private key, and Salesforce checks it with the certificate on the External Client App (the Identity and Access course, chapter 11, and the Integration Architect course, chapter 13). Replace the key without updating the app, and the integration stops.
  • Two-way TLS. The client certificate is checked in every handshake (module 6). Expired means no handshake.
  • Callouts. When Salesforce calls another system with its own certificate, and the other system has the old one in its keystore, the calls fail on the date.

Every one of those failures shows up as an outage, not a warning. That’s why the date belongs on a calendar, with an owner, before it arrives.

Look back at the road we’ve travelled. A shared key that has to be carried (module 1). A key pair, silver and gold, where only one ever leaves home (module 2). A hash, and a signature that seals it (module 3). A certificate, and the authority that vouches for it (module 4). A handshake that builds a safe road between strangers (module 5), and proof in both directions when the road is private (module 6). And now the end date that every one of those certificates carries.

Every identity mechanism in the rest of this course rests on these pieces. When you set up single sign-on, OAuth or two-way TLS, you’ll be asked for a certificate, again and again. As I tell every class: as soon as you say the word trust, think digital certificate. And assume it expires.

  • Every certificate has an owner and a date. Keep an inventory: what it’s for, where it’s installed, who renews it, when.
  • Automate renewals for public certificates. At 200, then 100, then 47 days, people will miss one.
  • Self-signed or CA-signed, by job. Self-signed for partners who install it on purpose; CA-signed when a public authority must vouch, and for two-way TLS into Salesforce.
  • Give the expiry warnings to the people who renew. Assign Receive Certificate Expiration Notifications on purpose.
  • Never pin. Trust the root, so Salesforce’s own replacements never break you.

Exercise. Open your org’s login page in a browser and read its certificate: who issued it, the chain above it, and its “not before” and “not after” dates. Then open Certificate and Key Management in a sandbox and list every certificate there, with its end date and what uses it. Which one expires first, and who will replace it?