Eu encontrei uma boa solução usando PHP (uma linguagem que eu estava usando mesmo assim):
Configurei com sucesso meu servidor Apache para usar certificados públicos como um método de autenticação, usando a seguinte configuração:
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile /etc/ssl/private/key.crt
No entanto, quando o cliente não tem um cliente instalado, eu gostaria de redirecioná-lo para outra página (de erro), em vez de mostrar a mensagem de erro padrão (criptológica):
ssl_error_handshake_failure_alert
Eu pesquisei por aí e encontrei alguém que desenvolveu um mod_ssl_error module, que requer a recompilação do módulo mod_ssl, obviamente. Como não há conexão real (como é abortada), o Apache não pode exibir nenhuma mensagem de erro.
Outra maneira de fazer isso seria definir a diretiva SSLVerifyClient como opcional e verificar se o usuário acessou a página usando uma chave pública. Existe alguma maneira de verificar isso?
Existe algum (bom) caminho para alcançar algo assim?
Eu encontrei uma boa solução usando PHP (uma linguagem que eu estava usando mesmo assim):