Autenticação SSL mútua - certificado de cliente vs certificado de servidor

1

Estou configurando um aplicativo da web que se conectará a um serviço da web remoto e precisará usar um certificado de cliente. Meu aplicativo da web usa HTTPS para se conectar e eu o configurei com meu certificado curinga existente para meu domínio.

Posso usar minha chave pública no certificado curinga como meu certificado de cliente? Vou precisar fornecê-lo aos administradores de serviços da Web remotos para que eles possam adicioná-lo à lista de certificados de clientes confiáveis.

Existe alguma desvantagem em usar a chave pública do meu curinga como meu certificado de cliente? Se eu não posso / não devo fazer desta forma, que tipo de certificado eu posso usar?

    
por blizz 14.03.2016 / 21:30

1 resposta

3

Uma desvantagem é que sua chave privada pode agora estar em duas máquinas.

Uma chave de cliente deve ser privada, por definição. Se é compartilhado, então não é privado.

Isso reduz instantaneamente a confiança que qualquer pessoa pode ter em seu certificado. Todos os outros usuários desse servidor (se houver algum) não podem confiar nele, já que sua chave privada é compartilhada.

Sua pergunta não indica se você está usando sua própria autoridade de certificação ou uma autoridade de certificação comercial. Se for comercial, talvez você quebre os termos da CA & condições compartilhando a chave privada.

Melhor seria simplesmente criar outro certificado para o seu cliente. Se você estiver executando sua própria CA, basta criar outro certificado. Se for comercial, compre um novo certificado para o seu cliente ou obtenha um livre . De qualquer forma, se o seu certificado tiver um campo Extended Key Usage, verifique se ele contém 'Autenticação do cliente' (em vez de 'Autenticação do servidor').

Conforme você esclareceu, sua configuração é uma máquina que atua como um cliente e um servidor. Nessa situação, você precisa estar ciente da pequena diferença nos perfis de certificado para autenticação do servidor e autenticação do cliente:

Um certificado de servidor terá o nome DNS do servidor como CommonName (CN) ou Subject Alternate Name (SAN), ou ambos. Um certificado de cliente geralmente tem seu endereço de e-mail como CN, embora não exista motivo para que ele não possa ser outra coisa.

A extensão Extended Key Usage para um certificado de servidor deve ser server authentication , enquanto que para um certificado de cliente deve ser client authentication . Isso pode causar problemas.

    
por 14.03.2016 / 22:07