Skip to main content

Certificate Findings

A finding is a problem or a weakness the certificate check found on a monitor: an expired certificate, a hostname it doesn't cover, a missing CAA record. Each finding has a key (such as CERT_HST02), a title (Certificate doesn't cover this hostname), a short label used in alerts and on the report's Checks card (Name Does Not Match), and a severity. The pages in this section explain each one and how to fix it; the How to Fix It link on a finding in the portal opens its entry here.

How the Check Works​

On every check we look up the monitor's hostname, connect to each address it resolves to, complete the TLS handshake (after STARTTLS, for the protocols that use it), and read the certificate chain the server sends. Then we check each certificate and the domain's DNS:

CheckWhat it looks atFindings
ConnectionReaching the service and completing the handshakeCERT_NET01 - CERT_NET09
ExpirationThe certificate's validity datesCERT_EXP01 - CERT_EXP03
Validity periodHow long the certificate is valid forCERT_LIF01
HostnameWhether the certificate covers the hostnameCERT_HST01 - CERT_HST02
Chain of trustWhether the chain leads to a trusted root or your private CACERT_TRU01 - CERT_TRU03
RevocationWhether the CA has revoked the certificateCERT_REV01
Signature algorithmHow the certificate is signedCERT_SIG01 - CERT_SIG03
Key strengthThe certificate's key algorithm and sizeCERT_KEY01 - CERT_KEY02
CAAThe domain's CAA records in DNSCERT_CAA01 - CERT_CAA07
ConsistencyWhether every address serves the same certificateCERT_CON01 - CERT_CON02

Severities​

Findings use one severity scale, from least to most serious:

SeverityMeaning
NoticeA suggestion: nothing is broken, but something could be better. The report counts notices as suggestions.
WarningSomething that needs attention soon, or will break later.
ErrorSomething that is broken now, or that clients will reject.
CriticalThe most serious problems. No certificate finding is critical today.

A monitor's status on the report and the monitor list comes from its worst finding. Which findings send an alert is set on the monitor's profile.

When the Connection Fails​

A check goes through its stages in order: the DNS lookup, the address, the connection, the TLS handshake, and reading the certificate. Each stage needs the one before it to have worked, so on each address only the earliest failure is a finding. A connection that times out, for example, shows Connection to the service timed out, and not also a finding for the certificate that couldn't be read after it. Certificate couldn't be read (CERT_NET01) appears on its own only when nothing more specific explains it.

The checks that need a certificate then say Not checked on the report's Checks card, with the addresses they couldn't run on. The CAA check only needs the DNS lookup, so it still runs.

Dismissing a Finding​

Notices, and No CAA record (CERT_CAA01), can be dismissed on a monitor where you've decided not to act on them: click the × beside the finding on the report's Findings card, or select monitors on the finding's details on the Findings page and click Dismiss.

A dismissed finding stops counting toward the monitor's status and counts, doesn't alert, and is left out of the Findings page and the shared and exported reports. It still shows on the Checks card as information, marked (dismissed), with Restore beside the check's name to bring it back. Dismissing applies to that one monitor only.

Every Finding​

KeyTitleLabelSeverityCan be dismissed
CERT_NET01Certificate couldn't be readCertificate Not ReadErrorNo
CERT_NET02Check couldn't connect (internal error)Network FailureErrorNo
CERT_NET03Connection to the service failedNetwork FailureErrorNo
CERT_NET04Connection to the service timed outNetwork TimeoutErrorNo
CERT_NET05STARTTLS upgrade failedSTARTTLS FailureErrorNo
CERT_NET06TLS handshake failedSSL FailureErrorNo
CERT_NET07Hostname doesn't resolve in DNSDNS FailureErrorNo
CERT_NET08Hostname resolves to a private addressPrivate IP BlockedErrorNo
CERT_NET09Mail server rejected the connectionConnection RejectedErrorNo
CERT_EXP01Certificate expires soonExpires SoonWarningNo
CERT_EXP02Certificate has expiredExpiredErrorNo
CERT_EXP03Certificate validity dates are invalidInvalid Expiration DatesErrorNo
CERT_LIF01Certificate valid for more than 90 daysLong Reg PeriodNoticeYes
CERT_HST01Hostname only in the Common NameMatched CN, No SANNoticeYes
CERT_HST02Certificate doesn't cover this hostnameName Does Not MatchErrorNo
CERT_TRU01Chain not trusted by the monitor's private CANot TrustedErrorNo
CERT_TRU02Chain not trusted by public CAsNot TrustedErrorNo
CERT_TRU03Root certificate sent in the chainRoot SentNoticeYes
CERT_REV01Certificate revoked by its CARevokedErrorNo
CERT_SIG01Signature algorithm not recognizedUnknown Sig AlgorithmWarningNo
CERT_SIG02Weak signature algorithmWeak Sig AlgorithmErrorNo
CERT_SIG03Insecure signature algorithmInsecure Sig AlgorithmErrorNo
CERT_KEY01Certificate key too shortWeak Key AlgorithmErrorNo
CERT_KEY02Legacy key algorithmLegacy Key AlgorithmErrorNo
CERT_CAA01No CAA recordCAA Not FoundWarningYes
CERT_CAA02CAA record only on a parent domainCAA Not SpecificNoticeYes
CERT_CAA03CAA record doesn't allow this CACAA Record FailureErrorNo
CERT_CAA04CAA record has an unknown critical tagCAA Critical TagWarningNo
CERT_CAA05CAA lookup failedCAA Lookup FailedWarningNo
CERT_CAA06CAA record forbids every CACAA Forbids All IssuersErrorNo
CERT_CAA07CAA record is malformedCAA Record MalformedErrorNo
CERT_CON01Addresses serve different certificatesCerts Did Not MatchErrorNo
CERT_CON02Certificate keeps changing between checksCertificate FlappingWarningNo