Glossary

Self-signed certificate

A self-signed certificate is one signed with its own key rather than by a certificate authority. It encrypts exactly as well as any other certificate — the cryptography is identical. What it lacks is attestation: nothing independent vouches that the key belongs to the site named in it, so a browser has no way to distinguish it from one an attacker generated a moment ago for the same name.

Why encryption without attestation is not enough

Encryption protects data from anyone who is merely watching the connection.

It does nothing against someone positioned to answer in the server's place, because they can present their own certificate and encrypt just as strongly.

The certificate chain is what makes that impossible: an authority the browser already trusts has verified control of the name.

A self-signed certificate breaks that chain at the first link, so the browser is being asked to trust an assertion with nothing behind it.

Which is why the browser warning is not excessive caution — accepting it removes the only defence against an impostor.

Where one legitimately belongs

Local development, where the name is a loopback address and there is no network path for anyone to sit on.

Internal services on a private network, particularly where an internal authority signs them and is distributed to the machines that need it.

Machine-to-machine links where both sides pin the exact certificate they expect, which is stronger than authority validation rather than weaker.

Not a public website, under any circumstance — a publicly reachable site can obtain a trusted certificate automatically and at no cost.

What teaching people to click through costs

A user who learns to accept certificate warnings on an internal tool will accept one on a site that matters.

The warning is the only signal a browser gives for an entire class of problem, and its value depends entirely on being rare.

Which is why an internal authority distributed to managed machines is worth the setup: warnings stay meaningful and internal traffic stays verified.

The same reasoning applies to expired and mismatched certificates, which produce the same warning for different reasons and have the same effect on habits.

How it differs from the failures it resembles

An expired certificate was trusted and no longer is, which is usually an automation failure rather than a configuration choice.

A hostname mismatch is a valid certificate presented for the wrong name, frequently a server selection problem rather than a certificate problem.

An incomplete chain is a valid certificate whose intermediate is missing, which some clients tolerate and others do not.

A self-signed certificate is none of these: it is a deliberate configuration that no public client will accept.

The browser presents all four similarly, which is why reading what the certificate actually says matters before diagnosing.

How it is observed

The certificate presented is retrieved and its issuer read, which is where a self-signed certificate identifies itself: the issuer and the subject are the same.

The chain is examined for completeness, since a missing intermediate produces a superficially similar failure.

The validity window and the hostname coverage are checked separately.

A site presenting one is reported as serving an untrusted certificate, which is what every public client will conclude.

Frequently asked questions

Is a self-signed certificate insecure?
The encryption is identical. What is missing is attestation — nothing independent confirms the key belongs to that site, so a browser cannot tell it from an impostor's.
Can I use one on an internal site?
It works, and an internal certificate authority distributed to managed machines is better: internal traffic stays verified and browser warnings stay meaningful.
Why does the browser make it so hard to proceed?
Because the warning is the only signal for an entire class of problem, and its value depends on being rare. Friction is deliberate.

Sources

Related

VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.

Scan a website