Audit rules
TLS Certificate Expiring Soon
The TLS certificate of the host is close to its expiry compared with its own validity period (for a 90-day or 1-year certificate: 30 days for a review, 7 days for a failure). Most certificates renew automatically; a renewal that fails makes the site unreachable over HTTPS when the certificate expires. A failure has info severity and counts against the score.
http.tls_expiringInfo01 — Definition
How This Rule Is Checked
The rule is a pure function of the fetched page: no extra requests, no account settings. The same input always gives the same result.
Rule Severity and Score
- Rule id
http.tls_expiring- Group
- HTTP
- Severity of a failure
- Info
- Counts in the score
- Yes, whenever it applies to the page
- Required for a score
- No
Condition and Exceptions
- Condition
- Probe tls: days from the probe's checked_at to valid_to, against thresholds proportional to the validity period L (valid_from to valid_to, same handshake): ≤ min(30, L/3) → review; ≤ min(7, L/12) → fail (info). A 90-day or 1-year certificate keeps 30 and 7 days; a 6-day certificate is reviewed with 2 days left. Host-level: one issue per host (IssueTracker::HOST_RULES), one result per crawl
- Exceptions
- http page → not_applicable; certificate not valid → not_applicable (http.tls_invalid); no probe, no valid_to or no checked_at, HTML mode → not_checked; no valid_from (a probe stored before lot 3) → the fixed 30 and 7 days
Sources and Project Decision
- Sources
- RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile, section 4.1.2.5 Validity (IETF, Q73)
Let's Encrypt FAQ: renew 90-day certificates every 60 days and six-day certificates every three days (Let's Encrypt, Q14) - Project decision
- Thresholds proportional to the certificate's validity period L: review when the days left are at most min(30, L/3), an info failure at min(7, L/12). Let's Encrypt renews 90-day certificates with a third left and 6-day certificates with half left (Q14), so a short-lived certificate inside its normal renewal window is not flagged. The 30 and 7 day caps are project decisions [D]. Days are counted from the moment the certificate was read (checked_at). One result per host.
02 — HTTP
Other Rules in This Group
The other checks of the same group, each with its own condition and sources.
- No Cache Validatorshttp.cache_validators
- HTML Not Compressedhttp.compression
- Page Answers With an Error Statushttp.error_status
- WWW and Non-WWW Both Serve the Pagehttp.host_variant_duplicate
- HTTP Protocol Versionhttp.http2
- HTTP Version Not Redirected to HTTPShttp.http_variant_not_redirected
- Page Not Served Over HTTPShttp.https
- Mixed Contenthttp.mixed_content
- X-Powered-By Version Disclosedhttp.powered_by
- Redirect Chainhttp.redirect_chain
- Server Version Disclosedhttp.server_header
- Invalid TLS Certificatehttp.tls_invalid