SSL é autenticação de chave pública. Geralmente é usado para autenticar a identificação do servidor remoto ... o servidor apresenta um certificado, assinado pela chave privada de uma autoridade de certificação, e seu navegador o verifica com relação à chave pública das autoridades.
Também é possível usar o SSL para autenticar a identificação do cliente. Nesse caso, você configura o navegador para apresentar um certificado de cliente quando ele se conecta a um servidor remoto, e o servidor remoto autentica o certificado contra alguma autoridade.
Tudo isso é relativamente fácil e bem suportado pela maioria dos servidores web. Este documento discute como configurar as coisas com o Apache. A instrução SSLRequire faz a maior parte do trabalho pesado para esse tipo de configuração.