É possível fazer autenticação de certificado de cliente sem executar HTTPS em um servidor da web?

3

(Por favor note: esta pergunta é uma das muitas perguntas do tipo "por que você simplesmente não tenta?". Eu certamente o farei, mas como eu não encontrei uma resposta óbvia no google, eu pensei que poderia bem como tornar mais fácil para alguém que possa precisar disso mais tarde, perguntando no ServerFault)

Meu aplicativo da web é veiculado por HTTPS por trás de alguns balanceadores de carga e permite que os usuários se autentiquem usando certificados de cliente em alguns casos. Agora estou sendo perguntado se gostaria de descarregar a criptografia / descriptografia SSL para carregar balanceadores para que eu estivesse executando um site HTTP simples (e, portanto, com depuração e configuração mais fáceis) enquanto o balanceador de carga faria HTTPS para o Comercial. Ciclos de CPU extras grátis certamente soam bem, no entanto, não estou convencido de que ainda consiga verificar os certificados de clientes dos usuários.

É possível usar certificados de cliente sem executar um site HTTPS completo?

    
por Nikolai Prokoschenko 12.10.2012 / 13:32

1 resposta

4

Depende de como você usa certificados de cliente para autenticar e autorizar usuários. Você permite que alguém com um certificado assinado por alguém que você reconheça ou deva ser assinado e o CN igual a algo específico ou igual a um usuário em um grupo? Seu servidor da Web atual controla a autorização ou faz o seu aplicativo?

A maneira típica de fazer isso seria finalizar a conexão SSL em um balanceador de carga. Esse balanceador de carga seria o "site HTTPS completo" e precisaria ser configurado para solicitar um certificado de cliente. Seu balanceador de carga executaria uma verificação para ver se o certificado foi assinado por uma CA confiável. O balanceador de carga incluiria, então, detalhes do certificado SSL, como o DN, como Cabeçalhos HTTP para solicitação HTTP simples para seu aplicativo. Seu aplicativo verificaria esses cabeçalhos HTTP e autorizaria o usuário com base em uma relação de confiança entre o aplicativo e o balanceador de carga. Eu vi o realizado com todos os principais loadbalancers, como F5, ZXTM e até mesmo Apache HTTP Server.

    
por 12.10.2012 / 13:54