About Expertise Work Projects
Hosted Monitoring & Dashboards Self-Hosted Observability Stack Bulk Document Data Extraction Email Deliverability Diagnosis & Repair SEO Migration Recovery AWS Security Review VPS Hardening & ModSecurity Cloud Architecture & Resilience Review SSL & Server Configuration Container Security Review
Free Tools
Website Health Check Email Domain Health Check DNS Health Check SSL Certificate Checker Redirect Chain Checker Robots.txt Checker XML Sitemap Validator Docker Compose Checker WordPress Security Check AWS IAM / S3 Policy Checker Domain Registration Lookup Uptime Monitoring Trial Downtime Cost Calculator AWS Cost Estimator Cloud Architecture Self-Assessment DevOps Engagement Builder Self-Managed VPS vs Managed AWS
Blog Certifications Hire Me

The renewal worked. Nothing reloaded.

Your certificate renewed on schedule and the web server picked it up. Mail, the control panel and the box nobody logs into are still serving the old one, and nothing anywhere will tell you that. I force a renewal and read the certificate serial off every endpoint, before and after.

You probably got here from my own free checker. It was right.

So this page opens where that report ends, rather than explaining your certificate back to you.

The SSL certificate checker on this site is free, ungated and uncapped. It reads your certificate, tells you what is wrong, shows the evidence that proves it and explains the fix. Ten of the eleven faults on this page are already on that report, in full. Nothing is held back and nothing here unlocks it.

So the honest part first. If you run one web server, on port 443, with certbot, this page is probably not for you. Get a certificate and test the renewal, free, for as long as you like:

# get and install a certificate
sudo certbot --apache

# test that renewal will succeed
sudo certbot renew --dry-run

That is Let’s Encrypt and the EFF’s client doing the whole job for nothing, and there is no version of this page where you should pay me instead of running it. Then check the configuration with SSL Labs and generate a hardened protocol and cipher policy with the TLSRef configurator — free, and it covers twenty-four server types rather than web servers alone. Mozilla’s own SSL Configuration Generator now says it has moved there.

Read the second command again, though. It is the one this whole page turns on, and what it proves is considerably narrower than it looks.

Every free tool reads the certificate you are serving right now.

That is the whole category, mine included. None of them can watch a renewal, because at the moment you ask, the renewal has not happened yet.

My own SSL certificate checker
ten of the eleven faults below, with the evidence, free and uncapped
Qualys SSL Labs
“a deep analysis of the configuration of any SSL web server on the public Internet” — deeper than mine
testssl.sh
free, GPLv2, and it checks any port — so mail and appliances too
internet.nl
website and mail transport tests, from an initiative of the Internet community and the Dutch government
crt.sh
a search of the public certificate transparency logs, so you can see certificates issued for your name that you did not ask for
The TLSRef configurator
hardened configuration generated for twenty-four server types, Apache, nginx, HAProxy, Postfix and Exim among them. Mozilla’s own generator now says it has moved here

Every one of them answers the same question: what is on the wire at the instant you ask. They are good at it, and several are better at it than I am.

The fault behind almost every certificate outage is not on the wire at the instant you ask. It is this — the renewal succeeded, a new file landed on disk, and the process serving it never picked it up. Or a different process, on a port nobody checks, is still handing out last year’s copy to anyone who connects.

My own tool says exactly this, and can do nothing about it

Not my summary of it. This is the finding text it prints, which you can go and read for yourself in a couple of minutes:

  • cert.expired the renewal itself is rarely the thing that broke, it is the reload step afterwards.
  • cert.expiring_soon Certificates almost never expire because nobody knew the date — they expire because renewal failed quietly and nothing raised a flag.
  • chain.self_signed It is also what a server falls back to when a real certificate fails to load, so it can appear on a site that used to work.
  • cert.caa_mismatch Renewal is where it bites, because a compliant CA is required to refuse, and automated renewal fails with an authorisation error that never mentions CAA.

Four findings naming the reload step, from a tool that cannot reach it. It reads your server from the outside, once. That is not a limitation anyone is hiding — it is what an external scanner is.

And certbot documents the same boundary

This is not an argument against certbot, which is excellent and which I recommend above. It is certbot’s own manual, from its user guide:

  • --dry-run performs a test run against the staging server, obtaining test certificates “but not saving them to disk
  • “You can test whether future renewals will succeed with --dry-run.”
  • --pre-hook and --post-hook commands run by default. --deploy-hook commands do not run, unless enabled by --run-deploy-hooks.”

Exactly as narrow as that sounds, and no wider. The documented way to test a renewal never writes a certificate. It proves the certificate authority would issue you one — properly, and that is the half certbot can test. It cannot prove the new certificate reaches your services, because there is no new certificate. --run-deploy-hooks does make the hook run, against unchanged files, which proves your reload command exits zero.

The serial number your server will be handing out after the next renewal does not exist until the renewal runs. No scanner returns it. No questionnaire returns it. No amount of asking a language model returns it. That is the thing on this page.

Worth adding that the market prices it the same way. DigiCert sells Trust Lifecycle Manager to “scan networks, clouds, and endpoints for unmanaged certificates”, and it is sold by quote — two of its three tiers are contact-sales, and none of the three publishes a price. AWS issues certificates at no cost for use inside its own services, but bills per domain — at issuance, and again at every renewal — for the ones you can export. Even AWS treats a renewal as an event worth billing for.

One renewal, forced, with the serial read off every port before and after.

This is the artefact rather than a description of one. Filled in, so you can see the shape of what lands in your inbox.

Service Endpoint Serial before Serial after Reloaded by Result
Apache — main site example.com:443 03:8f…a1:7e 04:c2…9d:16 certbot deploy hook → systemctl reload apache2 Observed
Apache — www www.example.com:443 03:8f…a1:7e 04:c2…9d:16 the same hook, on the same server Observed
Postfix — submission mail.example.com:587 03:8f…a1:7e 03:8f…a1:7e nothing. No hook exists Not reloaded
Dovecot — IMAPS mail.example.com:993 03:8f…a1:7e 03:8f…a1:7e nothing. No hook exists Not reloaded
Control panel server.example.com:8443 01:4b…c7:9b 01:4b…c7:9b nothing. Self-signed, issued 2023, never renewed at all Not reloaded
CDN edge shop.example.com:443 7a:22…e0:04 7a:22…e0:04 the CDN, on its own schedule, from a different CA Separate mechanism
Six endpoints. One certificate file. Two of them picked it up.

Read the two mail rows again, because that is the finding. The renewal worked perfectly. Postfix and Dovecot carried on handing out the previous certificate — and they will keep handing it out until it expires, at which point every mail client on the domain starts refusing to connect, on a morning nobody scheduled. Nothing monitors it. The web checker says the site is fine, because the site is fine.

The panel row is a second one: an appliance certificate that has never renewed, because nothing was ever set up to renew it. And the CDN row is a third mechanism entirely, renewing on a different clock from a different authority — so a change made on the origin never reaches what visitors actually see. That is three renewal mechanisms on one small estate, and the client believed there was one.

The inventory it is read against

Service Endpoint Covers Authority Expires Renewed by
Apache example.com:443, www:443 apex and www Let’s Encrypt 63 days certbot timer, deploy hook present
Postfix mail.example.com:587, :465 the mail host Let’s Encrypt, the same file 63 days nothing
Dovecot mail.example.com:993, :995 the mail host Let’s Encrypt, the same file 63 days nothing
Control panel server.example.com:8443 the server hostname self-signed expired 2024 nothing
CDN edge shop.example.com:443 the shop subdomain CDN-managed 41 days the CDN, automatically

This exists first, because a drill with nothing to check against proves nothing. It is deliberately not the headline: testssl.sh checks any port, crt.sh lists every certificate ever publicly issued for your name, and a competent engineer could assemble most of this for free. It is the drill’s input. What makes it worth doing is that almost nobody has one — and the certificate that breaks is never the main site’s, because that one gets noticed.

Eleven distinct faults route here. Four of them you should not pay anyone for.

Split openly, because most of this you can check yourself in about ten minutes.

Four that free tools find and fix

Run SSL Labs, generate the configuration with TLSRef, reload. These stay free after any engagement here ends, and they appear in my packages as labour rather than as discoveries.

The transport is obsolete
TLS 1.0 or 1.1 still accepted, or a genuinely broken cipher negotiated on the live connection rather than merely offered. Both are a configuration line in one file, and the free generators write that line for you.
The certificate’s own crypto is obsolete
A SHA-1 signature, or a key too small to be worth having. Almost always a certificate that has been reissued from the same old request for years, because reissuing is easier than starting again.
Plain HTTP still works
Or it redirects, but the chain drops back to HTTP partway before landing on HTTPS. The padlock at the end of that journey says nothing about the middle of it.
No HSTS
So the first request of every visit is still available to be intercepted, even though every request after it is not. It is one header, and it is the one header people skip because turning it on badly is genuinely awkward to undo.

Six the drill is about

These are the ones where reading the wire gives you the symptom and says nothing about the cause.

Renewal has failed quietly
Expired, not yet valid, or inside thirty days. The date was never the problem. Something renewed and nothing reloaded, or the renewal stopped running months ago and the only notification went to an address that bounces.
The certificate is not one a browser accepts
Self-signed, or a chain ending somewhere no trust store has heard of. Worth knowing that this is also what a server falls back to when the real certificate fails to load — so it turns up on sites that used to work, which makes it a renewal fault wearing a different hat.
It does not cover the name people type
Hostname mismatch, no SAN at all, or www works and the apex does not. Frequently a renewal that quietly dropped a name: somebody removed a subdomain from the request two years ago and nothing has needed it since.
The full chain is not being sent
Or an intermediate expires before the leaf does. Browsers often paper over this by fetching what is missing; API clients, older devices and payment gateways do not, which is why it usually surfaces as “the website is fine but the integration broke”.
CAA authorises nobody, or not the CA you use
Or the record is malformed. The DNS checker finds it and it costs you nothing today — the certificate you are serving stays valid. It bites at renewal, because a compliant CA is required to refuse, and the failure arrives as an authorisation error that never mentions CAA.
The same incident keeps coming back
Certificate, redirect or DNS, two or three times a year, and nobody can say why. That is not bad luck. It is a renewal mechanism nobody owns, failing the same way each time and being fixed by hand each time.

And one that is not a review at all

There is no usable HTTPS on the host at all
Nothing listening on 443, or a handshake that completes and hands back no readable certificate. There is nothing to renew yet. If that is a site which never had HTTPS, it is setup work and I will say so rather than selling you a drill. If it went down an hour ago, see the last section — that is a phone call, not a booking form.

One more thing that is not a fault. The uptime trial here reports TLS failing on a host that otherwise answers. That is not a twelfth problem — it is the same faults above, seen over time instead of once, and it is the closest free thing to what this page sells. Start there. The combined website health check carries the same TLS module alongside DNS, redirects and headers if you would rather see everything at once.

Four ways in

Everyone starts with the drill, because until a renewal has actually been forced nobody knows how many mechanisms are in play — including me.

Renewal Drill & Review

Everyone starts here. It also scopes everything else.

  • One forced renewal, observed end to end, with the certificate serial read off every endpoint before and after
  • The endpoint inventory it is read against — every host and port that presents a certificate, and which mechanism renews each one
  • The drill record: what picked the new certificate up, what did not, and what reloads each service
  • The findings ranked, with the free tools’ results triaged rather than re-discovered
  • What is already correct, not just what is wrong
  • Nothing is changed. One domain, one forced renewal, up to 10 endpoints observed
Recommended

Review + Repair

Not a starting point. Follows the drill.

The tier where the next renewal stops being a question.

  • The deploy path made to reach every endpoint — so mail, the panel and the appliance pick up the next renewal without anyone remembering
  • The full chain deployed, coverage corrected, and the faults the drill exposed actually fixed
  • A second drill after the repair, proving the fix holds rather than asserting that it does
  • Everything staged and reversible, with a named rollback for each endpoint

Review fee credited — you pay the difference, not both.

Hardened TLS Baseline

The above, plus the configuration half across the whole estate.

  • Everything in the repair
  • Protocol and cipher policy applied to every endpoint, not only port 443
  • HTTPS enforcement, and HSTS rolled out in stages — a short max-age first, raised once nothing has broken
  • CAA records set to match the authority actually in use, so renewal stops being where it bites
  • Handover, so your team can run the drill without me

Review fee credited — you pay the difference, not both.

Renewal Watch

Because a renewal that worked in March proves nothing in September.

  • Every endpoint’s certificate serial and expiry checked on a schedule
  • The watch is for the serial to change at the expected time, on every endpoint — so a renewal that stops working is caught when it stops rather than when it expires
  • New hosts and ports added to the list as they appear
  • A one-page record each month you can hand to anyone who asks
  • Monthly in advance, cancel anytime, never auto-renewing

Five things about the packages, before you ask

  • The cap is one domain, one forced renewal and 10 endpoints. Endpoints rather than servers, on purpose: one box running Apache, Postfix, Dovecot and a container is four endpoints and a full day, while six web servers behind one load balancer renewed by the same certbot is closer to two. The endpoint is the unit because the endpoint is the thing that either picked the certificate up or did not.
  • The recommended tier is the repair, and that is deliberate. The drill tells you mail has been serving last year’s certificate; the repair means it stops. Only one of those changes your position. But you cannot start there — until a renewal has been forced, nobody knows what needs repairing.
  • The second drill in the repair tier is included, not quoted. Charging extra to demonstrate that my own fix works would be the exact failure this page is written against.
  • The review fee is credited for 30 days. Come back inside a month and you pay the difference. After that it lapses, and not as a sales tactic: certificates renew and hosts get added, so a drill from last quarter would have to be run again anyway.
  • What moves the size of the job is not the endpoint count. It is the number of distinct renewal mechanisms. certbot, DirectAdmin, cPanel, ACM, a reseller portal, an appliance’s own web interface and “somebody copies the file every year” are seven different jobs. A wildcard copied to places nobody tracks, DNS hosted somewhere you cannot automate against, TLS terminated at a CDN, an appliance with no shell, an OV certificate needing manual re-validation, or no maintenance window — each of those moves it more than adding two more ports does.

Renewal Watch is not uptime monitoring, and it is not expiry alerting. Expiry alerting is free in several places, including the uptime trial on this site, which watches a certificate for nothing during its trial. If what you want is dashboards, alerting and somebody watching the whole stack, that is hosted monitoring and it is a different service. This watches one thing: that the serial changes, on time, everywhere.

There are no figures on this page, and that is deliberate rather than coy. A fixed number would be too high for one web server and too low for an estate with five renewal mechanisms, and I would rather quote against what you actually have. Tell me the shape of it in the form — what presents a certificate, and how each one renews, or that nobody knows — and you get a figure back before anything is committed to.

What you have to supply

The first item is settled in writing before the engagement starts rather than discovered during it, and I will not proceed without it.

Written permission to force a renewal, naming every host, service and port. The same list as the endpoint cap, because it is the same list.

The reason it is non-negotiable is blunt: forcing a renewal is the one action here that can take a service down. If a reload fails partway, a service can be left serving nothing. So the window is agreed, the previous certificate and key are retained, the command that puts them back is written down before anything is renewed, and somebody of yours is reachable while the drill runs. If a reload leaves a service down despite that, the engagement stops and you hear inside the hour.

Access — least privilege, always

  • Access to every endpoint that presents a certificate. The web server, but also mail, the load balancer, the container and any appliance. A screenshot of a certbot timer is not access, and a job that reports success is not a renewal — that is the entire premise of this page.
  • A maintenance window, or explicit written permission to work live. Both are workable. Only one of them is comfortable.
  • The previous certificate and key retained, and the reload command for each service. There is a rollback before there is a drill, not afterwards.
  • Access removed when the work is delivered. That is your action rather than mine, so you never have to trust that I did it.

Information — and “we don’t know” is a real answer

  • Which renewal mechanism each endpoint uses — or that nobody knows, which is common, legitimate, and itself part of the finding rather than a blocker.
  • Who controls DNS, and API access to it if a wildcard is involved. DNS-01 validation is the only way to get a wildcard, and if DNS sits at a registrar you cannot automate against, the drill needs a human awake at the right moment.
  • The CA account, or the reseller contact, if the certificates are not from Let’s Encrypt. An OV or EV certificate cannot be force-renewed on a Tuesday afternoon without them, which turns the drill into a scheduled exercise around your procurement.
  • Whether anything terminates TLS in front of you — a CDN, a load balancer, a reverse proxy. If so, the certificate on the origin is not the one visitors see, and the two renew on different schedules by different means.

Protecting the work

  • Written authorisation naming the endpoints and the window, before anything is renewed. This protects you considerably more than it protects me.
  • Written agreement that a rollback exists for every endpoint before the drill starts. Not a formality — it is the clause that keeps this engagement from becoming the outage it exists to prevent.
  • For repair and baseline work: every change staged and reversible, with a named rollback. A correct change at the wrong moment is still an outage.

What I will not promise you

Forcing a renewal can take a service down. That is the honest risk of the central action on this page. If a reload fails mid-drill, a service can be left serving nothing. It happens inside an agreed window, the previous certificate and key are kept, the rollback command is written down first, and somebody of yours is reachable throughout. It is still a real risk and you should weigh it rather than take my word that it is small.

A drill proves one renewal reached those endpoints on one day, with the mechanism that was in place that day. It is evidence, and it is far more than you have now. It is not a guarantee that the next one will.

A drill cannot be repeated at will. Certificate authorities rate-limit issuance, so the number of forced renewals inside an engagement is finite and is agreed in advance rather than discovered halfway through.

It is a point in time. A subdomain added next month, an appliance bought next quarter, a CDN put in front next year — none of them are covered by a drill run today. That is an honest limitation of one-off work rather than an argument for the monthly tier, and you should weigh it as one.

The rules are getting harder, and that is a published schedule rather than a scare tactic. Under the CA/Browser Forum Baseline Requirements, the maximum validity of a publicly trusted certificate is already 200 days for anything issued since 15 March 2026. It drops to 100 days on 15 March 2027, and to 47 days on 15 March 2029. The change was adopted as Ballot SC-081v3 and passed with no votes against. A renewal path that limps along at 200 days will not survive at 47. Those are the dates; the interpretation is yours.

An SSL Labs grade is not the deliverable and I will never promise one. Grades score the configuration on one port at one moment. The fault this page is about does not appear in a grade at all — a site that renews badly can hold an A+ right up to the morning it expires.

The free tools stay better at what they are good at. SSL Labs and testssl.sh will keep finding protocol, cipher and header faults for free long after this engagement ends, and you should keep running them. This does not replace them and nothing here implies it does.

If the drill finds renewal reaches every endpoint, that is the finding, the fee is earned and the engagement ends. You get the record, the inventory and the reasoning in writing, and there is nothing further to buy — so the credit applies to nothing. Better said here than discovered afterwards.

Three things this is not, and one of them is urgent

Worth reading before the form, because in all three cases the right response looks nothing like the rest of this page.

Your certificate has already expired and the site is down

  • That is emergency recovery, and it is a phone call rather than a booking form. Different urgency, different hours, different price.
  • Folding it into a fixed scope would be wrong in both directions — against you if it runs long, against me if it does not.
  • Say it is live when you get in touch and I will tell you immediately whether I can help today, rather than putting you behind a review.

The drill finds renewal has never worked at all

  • This is the most valuable possible outcome of the first tier, not a failure of it. Somebody installed the live certificate by hand, there is a date in the future on which that becomes an outage, and it is exactly what you paid to find out.
  • It does change the work. Building a renewal that reaches every endpoint is repair, which is the second tier — not something absorbed silently into the first.
  • You hear at the moment I find it, with the evidence, and you decide. Nothing turns into an invoice without you agreeing to it first.

A certificate turns up that nobody issued

  • crt.sh lists every certificate ever publicly issued for your name. An entry nobody can account for is either a forgotten system or somebody else’s.
  • You hear immediately, in whatever way reaches you fastest — not in a report four days later.
  • The engagement pauses there, because continuing down a certificate checklist while that is unresolved would be the wrong order of work. Incident response is quoted separately.

And a fourth, smaller one: if an appliance or a CA relationship cannot support automated renewal at all, that is a procurement change rather than a configuration change. I will say so plainly and quote it separately, rather than building a manual process and calling it fixed.

How payment works

Plainly, so nothing about it is a surprise later. There is no account to create, no portal to log into and no card stored anywhere.

  1. You apply through the form

    No payment at this point, and no commitment. Tell me what presents a certificate, how each one renews, and what prompted this.

  2. I review it and confirm the scope

    If it is not worth doing, I say so here and it costs you nothing. If it is, you get the scope, the endpoint list and the window in writing before any invoice exists.

  3. An invoice arrives, payable within 48 hours

    It carries an invoice number and a due date. Unpaid past 48 hours, the application lapses and the slot is released to somebody else.

  4. Work begins once payment is received

    Not before. For one-off work there is nothing to suspend after delivery, so payment comes first — that is the standard arrangement and it runs both ways.

  5. Renewal Watch, if you take it, is monthly in advance

    Non-payment simply stops the work. Nothing is billed silently in the background and you can stop whenever you like.

If you are still building

Everything above assumes an estate that grew over years. Before launch the same work is a fraction of it, and on this page that gap is genuinely large rather than merely real.

What that involves

  • One renewal mechanism that reaches every endpoint, chosen while there are two endpoints rather than nine. Retrofitting a deploy path across mail, a panel and an appliance is most of the repair tier. Deciding it now is a configuration choice.
  • A wildcard decided on purpose, or deliberately not — before it gets copied to four places by four people over three years, with no single owner and four separate reload paths.
  • CAA records set on day one, matching the authority you actually intend to use, so the failure mode that only ever appears at renewal never appears at all.
  • The first forced renewal run before there is a customer to notice it. Then the serial has changed everywhere once, on a day nobody cared about, which is the cheapest that drill will ever be.

Mention that you are pre-launch in the form and I will quote it as its own piece of work. It is cheaper, and it is the version of this engagement I would rather sell.

Run the free checker first. Then tell me what happens at renewal.

It costs nothing, needs no signup and no email address, and it prints the finding id along with the evidence behind it. If it comes back clean and you can name what reloads your mail server after a renewal, you have saved a fee and I would rather tell you that than take it. If the honest answer to "what reloads Dovecot" is that nobody knows, that is exactly what this is for.

Prefer to talk? Book a free call ↗  ·  Or hire me on Upwork ↗  ·  Typical reply within one business day.

Questions

Your own free checker already told me what is wrong. Why pay you?
It did, it was right, and everything it prints stays free — no signup, no email address, no locked rows. It reads your server from the outside, once. It says so itself, in the text of four separate findings: the renewal is rarely the thing that broke, it is the reload step afterwards. The reload step is on your disk and in your process list, and no external scanner reaches either. That gap is this page. If the checker comes back clean and you can name what reloads your mail server after a renewal, you do not need me.
Is certbot renew --dry-run not enough?
It is genuinely good at what it does, which is testing the half that involves the certificate authority. Certbot’s own documentation is precise about the rest: a dry run obtains test certificates “but not saving them to disk”, and “--deploy-hook commands do not run, unless enabled by --run-deploy-hooks”. So the documented way to test a renewal never writes a certificate. It proves the CA would issue you one. It cannot prove one arrives at your mail server, because there is no certificate to arrive. --run-deploy-hooks does make the hook run — against unchanged files, which proves your reload command exits zero and nothing further. None of that is a criticism of certbot. It tests the half it can test.
Could forcing a renewal take my site down?
Yes, and it is the one action here that can. If a reload fails partway, a service can be left serving nothing. So it is named rather than assumed away: nothing is renewed without written permission naming every host, service and port, it happens inside an agreed window or with explicit permission to work live, the previous certificate and key are retained, the command that puts them back is written down before anything starts, and somebody of yours is reachable throughout. If a reload leaves a service down despite all of that, the engagement stops and you hear inside the hour rather than in the report.
What if the drill finds everything already reloads properly?
Then that is the finding, the fee is earned and the engagement ends there. You get the drill record, the endpoint inventory and the reasoning in writing, and there is nothing further to buy — so the review credit applies to nothing. Better said here than discovered afterwards. It is also the outcome I would rather reach: a renewal that lands on every port on the first attempt is a good afternoon for both of us, and you now have evidence rather than a belief.
What counts as an endpoint, and what if I have more than ten?
A host-and-port pair that presents a certificate. mail.example.com:587 and mail.example.com:993 are two of them even on one machine, because they are two processes with two reload paths. That is why the cap is endpoints rather than servers — one box running Apache, Postfix, Dovecot and a container is four endpoints and a full day, while six web servers behind one load balancer renewed by the same certbot is closer to two. Past 10 I look first and quote before anything is invoiced.
Will you get me an A+ on SSL Labs?
I will not promise a grade, and be careful of anyone who does. A grade scores the configuration on one port at one moment, which is useful and is not what this page is about. The fault here does not appear in a grade at all: a site whose renewal is quietly broken can hold an A+ right up to the morning it expires. The configuration half is real work and it is in the baseline tier — but SSL Labs will find those faults for free and TLSRef will generate the fix for free, and this page says so above rather than hoping you do not notice.
We are down right now — the certificate expired this morning.
Then this is the wrong page, and I would rather say that than take a booking. An outage in progress is a phone call, not a form. It has different urgency, different hours and a different price, and folding emergency recovery into a fixed review scope would be wrong in both directions. Get in touch and say it is live, and I will tell you immediately whether I can help today rather than putting you in a queue behind a review.
What if renewal has never worked, and somebody installed the certificate by hand?
Then the drill just did the most valuable thing available to it, and that is not a wasted fee — it is the entire reason to pay one. There is a date in the future on which that becomes an outage, and you now know it while it is still a Tuesday. It does change the work: building a renewal that reaches every endpoint is repair rather than review, so it is the second tier and not something absorbed silently into the first. You hear at the moment I find it, with the evidence, and you decide.
Certificate lifetimes are dropping. Does that change anything?
Considerably, and it is a published schedule rather than a prediction. Under the CA/Browser Forum Baseline Requirements, the maximum validity of a publicly trusted certificate is already 200 days for anything issued since 15 March 2026. It becomes 100 days on 15 March 2027 and 47 days on 15 March 2029. The change was adopted as Ballot SC-081v3 and passed with no votes against. Anything that works only because a person remembers will not survive it — a manual step performed once a year becomes a manual step eight times a year.
Why is there no statistic about certificate outages on this page?
Because the ones you have read are not checkable. The percentages, the average-cost-of-an-outage figures and the “the average company has N unknown certificates” claims all come from surveys run by the companies selling certificate lifecycle products, and the methodology behind them is not published anywhere. A number nobody can trace is decoration, not evidence. The honest material is better anyway: certbot’s own documentation and a dated CA/Browser Forum schedule, both linked on this page, and both of which you can open and read yourself.