SSL é autenticação de chave pública. Geralmente ele é 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 em relação à chave pública das autoridades.
Também é possível usar SSL para autenticar a identidade do cliente. Nesse caso, você configura seu navegador para apresentar um certificado de cliente quando ele se conecta a um servidor remoto, e o servidor remoto autenticará o certificado em relação a alguma autoridade.
Tudo isso é relativamente fácil e bem suportado pela maioria dos servidores da web. Este documento discute como configurar o Apache. A declaração SSLRequire faz a maior parte do trabalho pesado para esse tipo de configuração.