Monitoring certificates you did not issue
Third-party endpoints, partner APIs and legacy appliances outside your ACME automation are exactly the ones that expire unnoticed on a Saturday.
Shows how many days until a host's TLS certificate expires.
Shows how many days until a host's TLS certificate expires.
example.com
Expires 2027-01-01 — 142 days remaining
Renew well before the last 30 days.
Days remaining = time before clients start seeing errors.
Your input is sent to YAS infrastructure because the tool requires server-side processing or public network queries. Input is not stored.
curl -X POST "https://yas.sh/api/v1/tools/ssl-expiry" \
-H "Content-Type: application/json" \
-d '{"host":"yas.sh"}'const res = await fetch("https://yas.sh/api/v1/tools/ssl-expiry", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"host": "yas.sh"
}),
});
const data = await res.json();import requests
r = requests.post("https://yas.sh/api/v1/tools/ssl-expiry", json={"host":"yas.sh"})
data = r.json()| Field | Type | Required | Description |
|---|---|---|---|
| host | string | Yes | Hostname, e.g. yas.sh |
| port | integer | No (default 443) | TLS port |
{ "host": "yas.sh", "daysLeft": 87, "notAfter": "...", "issuedBy": "...", "isExpired": false, "expiringSoon": false }Days until a host's TLS certificate expires (live handshake).
400 VALIDATION_ERROR — invalid input or unsupported option.413 PAYLOAD_TOO_LARGE — input exceeds the 64 KB limit.429 RATE_LIMIT_EXCEEDED — rate limit exceeded (60 req/min).The tool opens a TLS connection to the host, completes enough of the handshake to receive the server's certificate chain, and reads the notBefore and notAfter fields from the leaf certificate. Those timestamps are absolute UTC values baked into the signed certificate — they cannot be extended, so renewal always means issuing a new certificate rather than modifying the existing one.
Expiry is only one of several ways a certificate stops working, but it is the one that is perfectly predictable and therefore inexcusable. Since the CA/Browser Forum reduced maximum lifetimes — 398 days, trending shorter — manual renewal has become untenable at any scale, which is why ACME automation and monitoring are now baseline operational requirements rather than refinements.
Third-party endpoints, partner APIs and legacy appliances outside your ACME automation are exactly the ones that expire unnoticed on a Saturday.
A renewed certificate on disk is not a renewed certificate in the running process. Many outages come from a service that was never reloaded.
Subdomains often terminate on different infrastructure with separate certificates and separate renewal paths.
Mail, database and admin services on 465, 993 or 8443 rarely feature in web-focused monitoring.
What this tool deliberately does not do, and where it will disagree with other implementations.