Compartilhar via


Solução de problemas de erros de autenticação mútua no Gateway de Aplicativo

Saiba como solucionar problemas com autenticação mútua ao usar o Gateway de Aplicativo.

Visão geral

Depois de configurar a autenticação mútua em um Gateway de Aplicativo, pode haver vários erros que aparecem ao tentar usar a autenticação mútua. As causas comuns dos erros de redimensionamento incluem:

  • Um certificado ou cadeia de certificados carregado sem um certificado de AC raiz
  • Uma cadeia de certificados carregada com vários certificados de AC raiz
  • Uma cadeia de certificados carregada que continha apenas um certificado folha sem um certificado de AC
  • Erros de validação devido à incompatibilidade de DN do emissor

Vamos ver por diferentes cenários que você pode encontrar e como solucioná-los. Em seguida, abordaremos códigos de erro e explicaremos as causas prováveis de determinados códigos de erro que você pode estar vendo com autenticação mútua. Todas as falhas de autenticação do certificado do cliente devem resultar em um código de erro HTTP 400.

Solução de problemas dos cenários - problemas de configuração

Há alguns cenários que você talvez esteja enfrentando ao tentar configurar a autenticação mútua. Vamos ver como solucionar algumas das armadilhas mais comuns.

Certificado autoassinado

Problema

O certificado do cliente carregado é um certificado autoassinado e está resultando no código de erro ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate.

Solução

Verifique se o certificado autoassinado que você está usando tem a extensão BasicConstraintsOid = "2.5.29.19" que indica que o assunto pode atuar como uma AC. Isso garantirá que o certificado usado seja um certificado de AC. Para obter mais informações sobre como gerar certificados de cliente auto-assinados, confira Certificados de cliente confiáveis.

Solução de problemas dos cenários – problemas de conectividade

Talvez você tenha conseguido configurar a autenticação mútua sem problemas, mas você está com problemas ao enviar solicitações ao seu gateway de aplicativo. Abordamos alguns problemas e soluções comuns na seção a seguir. Você pode encontrar a propriedade sslClientVerify nos logs de acesso do seu gateway de aplicativo.

SslClientVerify é NONE

Problema

A propriedade sslClientVerify está aparecendo como "NONE" em seus logs de acesso.

Solução

Isso é visto quando o cliente não envia um certificado de cliente ao enviar uma solicitação para o Gateway de Aplicativo. Isso pode acontecer se o cliente que envia a solicitação para o Gateway de Aplicativo não estiver configurado corretamente para usar os certificados de cliente. Uma maneira de verificar se a configuração de autenticação de cliente no Gateway de Aplicativo está funcionando conforme o esperado é por meio do comando OpenSSL a seguir:

openssl s_client -connect <hostname:port> -cert <path-to-certificate> -key <client-private-key-file> 

O -cert sinalizador é o certificado de folha, o -key sinalizador é o arquivo de chave privada do cliente.

Para mais informações sobre como usar o s_client comando OpenSSL, confira a página de manual dele.

SslClientVerify é FAILED

Problema

A propriedade sslClientVerify está aparecendo como "FAILED" em seus logs de acesso.

Solução

Há uma série de possíveis causas para falhas nos logs de acesso. Veja abaixo uma lista de causas comuns de falha:

  • Não é possível obter o certificado do emissor: Não foi possível encontrar o certificado do emissor do certificado do cliente. Isso normalmente significa que a cadeia de certificados de autoridade de certificação de cliente confiável não está completa no gateway de aplicativo. Valide se a cadeia de certificados da autoridade de certificação do cliente confiável carregada no gateway de aplicativo foi concluída.
  • Não é possível obter o certificado do emissor local: Assim como não é possível obter o certificado do emissor, o certificado do emissor do certificado do cliente não pôde ser encontrado. Isso normalmente significa que a cadeia de certificados de autoridade de certificação de cliente confiável não está completa no gateway de aplicativo. Valide se a cadeia de certificados da autoridade de certificação do cliente confiável carregada no gateway de aplicativo foi concluída.
  • Não é possível verificar o primeiro certificado: Não é possível verificar o certificado do cliente. Esse erro ocorre especificamente quando o cliente apresenta apenas o certificado folha, cujo emissor não é confiável. Valide se a cadeia de certificados da autoridade de certificação do cliente confiável carregada no gateway de aplicativo foi concluída.
  • Não é possível verificar o emissor do certificado do cliente: Esse erro ocorre quando a configuração VerifyClientCertIssuerDN é definida como true. Isso normalmente acontece quando o DN emissor do certificado do cliente não corresponder ao ClientCertificateIssuerDN extraído da cadeia de certificados de AC do cliente confiável carregado pelo cliente. Para mais informações sobre como o Gateway de Aplicativo extrai o ClientCertificateIssuerDN, confira DN do emissor de extração do Gateway de Aplicativo. Como prática recomendada, certifique-se de estar carregando uma cadeia de certificados por arquivo no Gateway de Aplicativo.
  • Finalidade de certificado sem suporte: verifique se o certificado do cliente designa o Uso Estendido de Chaves para Autenticação do Cliente (1.3.6.1.5.5.7.3.2). Mais detalhes sobre a definição de uso estendido de chave e identificador de objeto para autenticação de cliente podem ser encontrados no RFC 3280 e no RFC 5280.

Para mais informações sobre como extrair cadeias de certificados de AC de cliente confiáveis para carregar no Gateway de aplicativo, consulte como extrair cadeias de certificados de AC de cliente confiáveis.

Solução de problemas de código de erro

Se você estiver vendo qualquer um dos códigos de erro a seguir, temos algumas soluções recomendadas para ajudar a resolver o problema que você pode estar enfrentando.

Código de erro: ApplicationGatewayTrustedClientCertificateMustSpecifyData

Causa

Há dados de certificado ausentes. O certificado carregado pode ter sido um arquivo vazio sem dados de certificado.

Solução

Valide se o arquivo de certificado carregado não tem dados ausentes.

Código de erro: ApplicationGatewayTrustedClientCertificateMustNotHavePrivateKey

Causa

Há uma chave privada na cadeia de certificados. Não deve haver uma chave privada na cadeia de certificados.

Solução

Verifique a cadeia de certificados que foi carregada e remova a chave privada que fazia parte da cadeia. Recarregue a cadeia sem a chave privada.

Código de erro: ApplicationGatewayTrustedClientCertificateInvalidData

Causa

Há duas causas potenciais por trás desse código de erro.

  1. Falha na análise porque a cadeia não está sendo apresentada no formato correto. O Gateway de Aplicativo espera que uma cadeia de certificados esteja no formato PEM e também espera que os dados de certificado individuais sejam delimitados.
  2. O analisador não encontrou nada para analisar. O arquivo carregado pode ter apenas os delimitadores, mas nenhum dado de certificado.

Solução

Dependendo da causa desse erro, há duas soluções potenciais.

  • Valide se a cadeia de certificados carregada estava no formato correto (PEM) e se os dados do certificado foram delimitados corretamente.
  • Verifique se o arquivo de certificado carregado continha os dados do certificado, além dos delimitadores.

Código de erro: ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate

Causa

Uma cadeia de certificados carregada que continha apenas um certificado folha sem um certificado de AC. Carregar uma cadeia de certificados com certificados AC e um certificado de folha é aceitável, pois o certificado de folha seria ignorado, mas um certificado deve ter uma AC.

Solução

Verifique novamente se a cadeia de certificados que foi carregada continha mais do que apenas o certificado de folha. A extensão BasicConstraintsOid = "2.5.29.19" deve estar presente e indicar que a entidade pode atuar como uma autoridade de certificação.

Código de erro: ApplicationGatewayOnlyOneRootCAAllowedInTrustedClientCertificate

Causa

A cadeia de certificados continha vários certificados de AC raiz ou continha certificados de AC raiz zero.

Solução

Os certificados carregados devem conter exatamente um certificado de AC raiz (e, no entanto, muitos certificados de AC intermediários, conforme necessário).