SSL / TLS, in plain language

Get the padlock right — and understand why it works.

SSLGuides.com is a practical reference for installing, migrating to, and troubleshooting SSL/TLS certificates. No jargon left unexplained, no step skipped — from your first certificate to your tenth server migration.

ROOT CA Trusted anchor INTERMEDIATE Signs your cert YOUR SITE yourdomain.com

Check a certificate right now

Point this at any hostname to see the certificate it's actually presenting — hostname match, chain, and expiry.

Full checker (STARTTLS & more) →
Your hostname is sent to sslguides.com's own server, which connects to it on your behalf — a browser can't open a raw TLS connection to an arbitrary host itself. Nothing is stored.

Certificate presented by this server

Have an SSL problem right now?

Answer one or two quick questions and we'll point you straight at the guide that matches — no browsing required.

What's going on?

What does the warning actually say?

Sounds like a hostname mismatch

The certificate being served doesn't cover the domain your browser is asking for — often a wrong server_name/vhost, a missing SAN entry, or the default site answering first.

Not sure which domain the cert actually covers? Check it with the tool above, or decode it with the SSL & CSR Decoder.

Sounds like a chain / trust problem

The browser can't build a path from your certificate up to a root it trusts — usually a missing intermediate certificate on the server.

The CA Chain Builder tool can assemble the missing intermediates for you.

Sounds like a date / clock problem

This shows even for perfectly valid certificates when the client or server clock has drifted — worth ruling out before assuming the certificate itself is bad.

Use the checker above to confirm the actual valid-from/valid-until dates on the live certificate.

Sounds like a protocol / handshake failure

The connection is failing before a certificate is even exchanged — usually a TLS version or cipher mismatch, or the server not answering as expected on that port.

The OpenSSL Trace tool shows exactly where the handshake breaks down.

Revoked, or a non-production cert in the wrong place

A revoked certificate needs reissuing, not just renewing — and a staging certificate showing up in production means the ACME client is pointed at the wrong environment.

Double-check revocation status with the OCSP Checker.

What's the actual situation?

Likely a caching or wrong-server issue

The new certificate is usually sitting somewhere the traffic isn't reaching yet — a load balancer node, a CDN edge cache, or a service that wasn't restarted after renewal.

Use the checker above to see the dates the server is actually presenting right now.

Sounds like an automated-renewal failure

Most renewal failures come down to a domain-validation step that can no longer complete — a changed DNS record, a firewall rule, or a control-panel integration quietly breaking.

Check whether validation would even succeed right now with the DCV Readiness Checker.

Time to reissue

Once a certificate has genuinely lapsed, the fix is a fresh certificate — free automated ones for most cases, or a paid option if you need extended validation or long validity.

Where is it failing?

curl / PHP cURL trust-store issue

This almost always means curl's CA bundle can't verify the chain the server sends — even though your browser's much larger, auto-updated trust store can.

Trace exactly what the handshake sends with the OpenSSL Trace tool.

Python's certifi bundle can't verify the chain

Same root cause as curl: Python's requests library ships its own CA bundle via certifi, independent of your OS or browser trust store.

Node.js can't build the certificate chain

UNABLE_TO_VERIFY_LEAF_SIGNATURE almost always means the server isn't sending its intermediate certificate(s) — Node is stricter about this than most browsers.

Confirm the chain the server is actually sending with the checker above, or the CA Chain Builder.

Java's own truststore (cacerts) is out of date or incomplete

PKIX path building failed means the JVM's own cacerts truststore doesn't have what it needs to validate the chain — a separate trust store from your OS.

Postman-specific certificate handling

Postman validates certificates independently of your OS and has its own SSL settings that can be the actual cause, separate from the server's certificate itself.

What kind of site is it?

A hardcoded http:// asset somewhere on the page

Usually an image, script, or stylesheet reference left over from before the HTTPS migration — the page itself loads securely, but one embedded resource still doesn't.

Usually an API call or bundled dependency, not markup

In a single-page app the offending request is often buried in a JS bundle, a third-party widget, or an API base URL set in an environment config — not visible in the page source.

Latest posts

Case studies from real, common troubleshooting patterns — how a specific problem actually got diagnosed and fixed.

View all case studies →
The 2am Alert From a Certificate Transparency Log Nobody Was Watching

The 2am Alert From a Certificate Transparency Log Nobody Was Watching

A routine decision to start monitoring Certificate Transparency logs — made mostly to tick a compliance checkbox — caught a real, unauthorized certificate for the company's domain within hours of it being issued.

The Private Key That Lived in a Public Repo for Six Months

The Private Key That Lived in a Public Repo for Six Months

A routine security scan turned up something nobody wanted to find: a production private key, committed to a public GitHub repository, sitting there for half a year before anyone noticed.

Replacing a $400-a-Year EV Certificate With Free Automation

Replacing a $400-a-Year EV Certificate With Free Automation

A recurring annual line item nobody had questioned in years turned out to be buying almost nothing the company actually needed anymore — but retiring it required more thought than just letting it lapse.

Latest news

Real, dated SSL/TLS industry events — CA/Browser Forum ballots, browser policy changes, CA incidents.

View all SSL News →
CA/Browser Forum Considers Making Cross-Sign EKU Requirements Explicit

CA/Browser Forum Considers Making Cross-Sign EKU Requirements Explicit

AWS Adds ML-KEM Post-Quantum Support to KMS, ACM, and Secrets Manager

AWS Adds ML-KEM Post-Quantum Support to KMS, ACM, and Secrets Manager

Let's Encrypt Briefly Halted Issuance Over a Missing EKU on Its New Root

Let's Encrypt Briefly Halted Issuance Over a Missing EKU on Its New Root

Ready to buy a certificate?

Compare wildcard, multi-domain, and OV/EV options from vendors we've reviewed.

Compare certificates

Useful links

Certificate authorities, tools we didn't build ourselves, and the standards bodies that actually write the rules.

See all useful links →