mirror of
https://github.com/louislam/uptime-kuma.git
synced 2026-03-02 22:57:00 -05:00
Dealing with revoked certificates #797
Labels
No labels
A:accessibility
A:api
A:cert-expiry
A:core
A:dashboard
A:deployment
A:documentation
A:domain expiry
A:incidents
A:maintenance
A:metrics
A:monitor
A:notifications
A:reports
A:settings
A:status-page
A:ui/ux
A:user-management
Stale
ai-slop
blocked
blocked-upstream
bug
cannot-reproduce
dependencies
discussion
duplicate
feature-request
feature-request
good first issue
hacktoberfest
help
help wanted
house keeping
invalid
invalid-format
invalid-format
question
releaseblocker 🚨
security
spam
type:enhance-existing
type:new
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/uptime-kuma#797
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ccoenen on GitHub (Feb 3, 2022).
⚠️ Please verify that this feature request has NOT been suggested before.
🏷️ Feature Request Type
Other
🔖 Feature description
Uptime Kuma checks the time until certificates expire. It could also check for the validity based on their revocation status.
✔️ Solution
On top of alerting for outdated certs, it should also alert for revoked certs.
❓ Alternatives
No response
📝 Additional Context
Let's encrypt is in the process of revoking a number of certificates this week. The issued certificates would still be before their expiration date, but will nonetheless be causing security warnings for clients. This can't be fully avoided with this, but at least one would not be notified by users/clients but from the monitoring system.
More context: https://www.bleepingcomputer.com/news/security/lets-encrypt-is-revoking-lots-of-ssl-certificates-in-two-days/
While this supposed future enhancement will not help with this week's problem, it might help mitigate a potential future similar incident.
@kfeina commented on GitHub (Apr 9, 2024):
Hello,
Is there any plan to implement the revoke certificate check?
Thanks a lot.
@CommanderStorm commented on GitHub (Apr 9, 2024):
I think the same arguments as in node apply: https://github.com/nodejs/node/issues/16338
Seems like the security people have spoken that implementing this system is not sensible.
=> If they don't think doing so adds extra value we also should not spend the effort, or am I missing something?
I read https://scotthelme.co.uk/revocation-is-broken/ there is no real way to do what is being asked in this issue. OCSP might help but is not perfect.
If someone wants to look into OCSP Stapling, we would be open to a PR. Our contribution guide is here.
Note that you can likely provide your CRL via the mechanisms in node if the risks noted in https://github.com/nodejs/node/issues/16338 are fine for you.
@kfeina commented on GitHub (Apr 12, 2024):
Hello again,
Maybe we miss the oportunity to check revoked certificates. I mean, something was revoked but we can not detect it with our monitoring tool (in this case uptime kuma). .
I understand this is a technical difficult problem, but I can't help programming it cause I don't have the required skills. I could only help in the testing steps.
Maybe OCSP stapling is the correct way to check it and forget CRL and OCSP?
Thanks a lot for your time.
@misery commented on GitHub (Sep 18, 2024):
I really like to see support for OCSP-Stapling, too. :-)
@CommanderStorm commented on GitHub (Sep 26, 2024):
Scratch the plan above.
The ISRG has an excellent take on this: https://www.abetterinternet.org/post/replacing-ocsp-with-crls/
=> OCSP Stapling means that one leaks which domain one requests to the CA. Said CA might be legally compelled to collect said information which is terrible for privacy. Since the big CAs are moving away from OCSP towards CRLs, that would apparently prefered..
I don't know how we (as an uptime software) should implement this though..
When should we fetch said list??
@misery commented on GitHub (Sep 26, 2024):
I think you mix "OCSP-Stapling" and "ask OCSP-Responder" here. The leak only exists if the client ask for the OCSP-Response itself. THAT is the reason of OCSP-Stapling.... the client doesn't ask the OCSP-Responder itself.
@Gldywn commented on GitHub (Aug 9, 2025):
Hey guys 👋
I’ve been working the past few weeks on something that I think directly addresses this exact problem:
hardened-https-agent.It’s a drop-in replacement for Node’s built-in
https.Agentthat adds browser-grade certificate validation to outbound HTTPS connections, specifically designed to catch revoked or mis-issued certificates, which Node (and therefore Uptime Kuma) does not handle by default.Out of the box it supports:
The library is fully configurable, you can enable/disable each check, bring your own CA bundle, adjust CT requirements, etc.
It’s open source and open to contributions from anyone interested in improving certificate validation for Node-based tools 👍
@CommanderStorm do you think Uptime Kuma would be open to a PR that adds an optional “Advanced TLS Validation” mode using this approach?
It could be fully opt-in in the settings, so users who want stricter revocation checks (OCSP stapling/direct, CRLSet, CT) can enable it without affecting the default behavior.
@CommanderStorm commented on GitHub (Aug 9, 2025):
Shure, but I don't see why we would need to make it configurable, or?
We can just check and alert for this..
This would only be "breaking" for somebody with revoked certificates, where their certs are broken anyhow.
@Gldywn commented on GitHub (Aug 9, 2025):
Hmm sorrry I didn’t explain myself clearly earlier.
What I meant is: if a user explicitly checks the “Ignore TLS/SSL errors for HTTPS websites” option when creating a monitor, then we should skip the advanced revocation validation entirely for that monitor.
For all other cases, I agree with you we can enable the checks by default (if HTTPS) and alert if a revocation is detected.
This way we keep the current behavior for people who knowingly want to ignore TLS/SSL validation, while still improving security for everyone else.
@CommanderStorm commented on GitHub (Aug 9, 2025):
Sounds good to me
@CommanderStorm commented on GitHub (Sep 13, 2025):
https://github.com/louislam/uptime-kuma/pull/6062 is out and ready for testing by others.
I would like for some of the people in this thread to have a look if this works as expected.
Here is our guide on how to test PRs:
https://github.com/louislam/uptime-kuma/wiki/Test-Pull-Requests
@Gldywn commented on GitHub (Oct 3, 2025):
If anyone has time to test #6062, that would really help move it forward 🙏