TLS Chain Not Validating, When Your Certificate Checks Out but Does Not Chain
TLS chain does not fully validate. That is the flag when a site presents a working certificate that browsers can read, but the certificate chain cannot be verified back to a trusted root, usually because an intermediate certificate is missing. It is a high severity finding for a reason that is easy to miss, the site loads fine for most visitors and quietly fails for others.
The distinction matters. This is not the flag for an expired or invalid certificate, the TLS connection works and the certificate itself is trusted. What fails is the proof. The server hands over its own certificate but not the intermediate that connects it to the certificate authority, so a client has to go hunting for that missing link on its own, and not every client bothers or succeeds.

Why most visitors never notice
Modern browsers are forgiving in a specific way. When a server fails to send the intermediate certificate, many browsers try to fetch it themselves using a mechanism called Authority Information Access, which points at where the missing certificate lives. Desktop browsers usually succeed at this quietly, which is why the site appears to work and why the problem can sit unnoticed for months.
The failure shows up on clients that do not chase the missing link. Older browsers, some mobile clients, email servers checking your certificate, monitoring tools, payment gateways, anything with strict validation can simply refuse the connection. One real report in our records shows exactly this pattern, a site whose certificate checks out and yet fails chain validation, because the server sends the leaf but not the intermediate that ties it to the authority. The server check tool checks any domain the same way, reporting whether the certificate validates and what the chain looks like.
What the score says
The security score treats a working but unverifiable chain as a partial result. A site that presents a valid certificate earns the main HTTPS credit, because the connection is encrypted and works for most people. But the chain not validating means twelve points of SSL credit never get added, the difference between a certificate that is merely present and one that proves itself to every client.
That is also why the finding sits at high severity despite the site loading fine. The risk is not the visitors you can see, it is the ones you cannot, the strict client, the payment processor, the monitoring service that stops trusting the site over a chain it cannot verify. High severity reflects that invisible reach, not how broken the site looks in a desktop browser.
The fix is a complete TLS chain
The fix is to install the complete certificate chain on the server, not just the leaf certificate. A certificate authority issues your certificate plus the intermediate certificates that connect it to the root, and most authorities provide a bundle file containing everything the server needs to send. The common mistake is installing only the site certificate, which works for lenient browsers and fails the strict ones.
On nginx, the ssl_certificate directive should point at a file containing the leaf and the intermediates together, and on modern Apache the same combined file is what SSLCertificateFile should reference. The old SSLCertificateChainFile directive is deprecated since Apache 2.4.8, so on current installations the full chain belongs in the main certificate file rather than a separate directive. Most control panels and certificate authorities have a one-click path for this, and renewing through the same authority usually reproduces the correct bundle automatically.
# nginx — the ssl_certificate file must contain leaf + intermediates ssl_certificate /etc/letsencrypt/live/yourdomain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain/privkey.pem; # Apache 2.4.8+ — point SSLCertificateFile at the combined chain SSLCertificateFile /etc/letsencrypt/live/yourdomain/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain/privkey.pem
The file names tell the story. A certificate authority that offers both cert.pem and fullchain.pem is telling you which one to use, and fullchain.pem is the one that includes the intermediates. The order inside that file matters, the domain’s own certificate has to be first, followed by the intermediate certificates, because the server presents them in sequence and a reversed bundle breaks the handshake.
After pointing the server at the full chain, reload it, because the certificate chain on disk does not reach the server until it picks the file back up. On nginx or Apache that is a service reload, which most certificate tools run automatically as part of their renewal hook. Once reloaded, the strict clients that were failing start succeeding, because the server now proves its certificate all the way back to a trusted root instead of making the client guess.
Testing like a strict client
Confirm the fix with a strict test, not a desktop browser, because a desktop browser was never the problem. Tools that validate the full chain will report whether the server sends the intermediates, and after the fix the same test that failed now passes cleanly. Run another Enterramon test and the finding should clear, which adds the SSL credit back onto the security score.
Then test from the clients that matter. The point of this fix is that email servers, payment processors, and strict mobile clients can verify the chain without chasing a missing link. If the site talks to any of those, the full-chain install is not a nicety, it is what keeps those connections working, and the cleared flag is the confirmation that the proof now travels with the certificate.