Faith Forge LabsNorway / Remote development

Verify the served certificate chain from a clean client

A new maintainer opens a service successfully on one workstation and records that HTTPS is working. A fresh integration client then refuses the same endpoint. The difference can be the certificate information already available to the first client, rather than a fault in the application request.

This fictional handover concerns a service endpoint used by an equipment-record application. It examines a missing intermediate certificate and keeps connection verification separate from application authentication and business acceptance.

Preserve the two observations

The endpoint presents its valid leaf certificate for the intended hostname. A previously configured client also has the necessary intermediate certificate available from its prior setup and can construct a path to its trusted root. The new isolated client has the expected trusted root but not that intermediate and cannot build the same path from what the server sends.

The handover record names the endpoint, test time, expected hostname and each client's trust configuration. It does not reduce the difference to “works on my machine” or assume that all browsers obtain missing certificates in the same way. Certificate retrieval, caching and trust behaviour vary by implementation.

The application credentials are not changed to address this error. The connection has failed before a successful authenticated business operation has been established.

Inspect what the server actually supplies

The operator checks the served certificate list through an approved read-only diagnostic. In the fictional setup, it contains the leaf but omits the issuing intermediate. The leaf's issuer information identifies the missing step; the intended root is already trusted by the receiving client.

OpenSSL's verification documentation distinguishes trust anchors from intermediate certificates used to build a chain, and documents separate hostname verification. A supplied intermediate is not automatically a new trust anchor. The client must still validate the chain under its actual trust and purpose rules.

The appropriate remedy is not to disable verification, accept any certificate or import the leaf as an arbitrary trusted root. Those actions would hide the observed failure by changing the security requirement.

Correct the endpoint's supported configuration

The authorised operator identifies the issuer-provided intermediate chain for this certificate and installs it using the server's supported configuration. The relevant service is reloaded or restarted according to that platform's documented process. The operator then inspects the active served chain, rather than assuming that saving a file changed the running endpoint.

In the corrected isolated rehearsal, the clean client receives the leaf and required intermediate certificate information and validates the path to its existing trusted root. Hostname verification remains enabled. The old client also continues to connect, but its success is no longer the only evidence.

The handover records the source of the chain material and the configuration location. Private keys remain protected; they are not included in screenshots, public documentation or general support messages.

Keep the contrary checks

The exercise includes a deliberately wrong hostname in an isolated validation check. It must still fail even though the chain can be built. A separate expired test certificate must fail the applicable time validation. Those controls demonstrate that the repair did not broadly relax verification to make the ordinary connection pass.

Review condition Expected result in this setup
Original incomplete server chain, clean client Chain validation fails
Corrected served chain, same clean client and hostname Validation succeeds under the intended trust configuration
Corrected chain, wrong hostname Hostname check fails
Expired test certificate under the validation time used Time check fails
Existing authorised client Continues to connect without an arbitrary new trust exception

These are controlled certificate checks. They do not prove that the application returns the correct equipment record, that a user is authorised or that a business request has completed. Those receiving tests follow through their own permitted process after transport is established.

Make the next renewal understandable

A renewal procedure needs to identify the certificate, chain, deployment target and responsible operator. Issuer chains can change; a future maintainer should inspect the actual material rather than perpetually reuse a filename called intermediate.pem. The handover also records how to observe the active endpoint and how to recover an unsuitable configuration change.

Review should include a client without helpful local intermediate history. That makes the receiving dependency visible before a new device or integration is introduced. The selected client's trust rules and platform remain part of the evidence; no single diagnostic certifies universal compatibility.

The completed result is a supported server configuration that supplies the required chain and preserves normal verification. The organisation can repeat the check without relying on the first developer's workstation.

For existing-system takeover, bring the endpoint and the differing error observations through the project enquiry. Share diagnostic summaries with sensitive material removed, never private keys or live credentials.