Certificate Trust

TLS opened an encrypted tunnel. But anyone can open an encrypted tunnel. How does your browser know the server on the other end is really Google? A chain of trust. Walk it. Break it. See what fails, and why.

Scenario

https://mail.google.com/
Certificate chain Status: Idle
Pick a scenario above, then click Verify chain. Your browser will walk the certificate chain from leaf to root, checking each step. Click any certificate card to see the full contents.

X.509 certificate

What just happened

Nerd tip

Certificate Transparency. Every cert a CA issues has to be logged to public, append-only CT logs. You can search crt.sh for any domain and see every cert that was ever issued for it. If an attacker somehow bribed a CA to issue a fake cert for your bank, the cert would show up in CT logs within hours. Browsers now refuse certs that don't include SCTs (signed timestamps proving they're in a log). Trust became transparent.

Nerd tip

Chrome ships its own root store. Since Chrome 105 (late 2022), Chrome has its own Chrome Root Program instead of using the OS trust store. That's why a site might work in Firefox but not Chrome (or vice versa), even on the same laptop. Browsers take the trust decision away from the OS. Apple, Microsoft, Mozilla, and Google each maintain their own root programs with their own removal policies. A CA can lose trust in one without losing it in the others.

Nerd tip

HPKP is dead. HTTP Public Key Pinning let sites tell browsers "only trust these specific keys for me." It sounded great in theory. In practice, sites pinned keys then rotated hardware or CAs and locked their own users out for months. Browsers removed it in 2019. The modern replacement is CT log monitoring: anyone can watch crt.sh for rogue certs on their domain and react. Trust by observation, not enforcement.