Surely it could be a lot easier...<p>Everyone already has a known public third party authority -- their domain registrar. Surely the browsers could come up with some protocol where you generate your own keypair, register the public key with the registrar and keep the private key on the server.<p>Then it could work pretty much like SSH, but with the browser doing out-of-band public key checking. Rather than needing a certificate chain, the browser just checks the server&#x27;s public key matches the published one. If ok, happy to encrypt. If not, wave flags, and yell &quot;spoof&quot;.<p>Verifying the registrar isn&#x27;t a fly-by-night can be as complicated as needs be, but that way the registrar (who already gets paid to register the domain) does the complex hassle, while the ordinary domain-buyer just has to keep their server&#x27;s public key up-to-date with the registrar (ie, fill in one web form at the time you register the domain or whenever you change the server key).<p>But alas it is not so at the moment. Instead, the current process puts hassle onto millions of individual domain-owners, while keeping life easy for the few (paid) certifying authorities. And then we wonder why so few people want to do it.