I'm looking for a way to authenticate clients/users at a web server with public/private key pairs and already read this question: Public key authentication or similar over HTTP/HTTPS? The answers are similiar to everything I found on the web. In short: "If you want public key authentication via HTTPS, use SSL client certificates".
However, I'm looking for a solution which is as simple and secure as SSH authentication with public/private keys. My problem with SSL client certificates is, that you need a CA and this makes a big difference from a security point of view, imho.
Here is why: If attackers steal your CA's private key, they are able to authenticate with any user, because they can sign their own client certificates. In the case of SSH, if attackers steal a user's private key, they can only authenticate as this single user.
So in conclusion I have to make sure that my CA is secured and the best way is to have a dedicated system / computer serving as CA. This means significantly higher effort and higher costs.
Considering security I think it's arguable which mechanism is better. But I think if public key authentication is sufficient for SSH access, it should also apply to web application authentication. Also notice, that I only want to use public/private key as an addition to my existing HTTP basic (user/password) authentication in order to increase security. Actually, my goal was to increase security by a second factor with minimal effort and without requiring the users to use token generators.