Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Saiba como solucionar problemas com autenticação mútua ao usar o Application Gateway.
Visão geral
Para autenticação mútua em um Application Gateway, vários erros podem ocorrer durante a validação do certificado do cliente após a configuração. As causas comuns para esses erros incluem:
- Carregar um certificado ou cadeia de certificados sem incluir um certificado de CA raiz
- Carregar uma cadeia de certificados com vários certificados de CA raiz
- Carregar uma cadeia de certificados que contém apenas um certificado final sem certificado de CA
- Erros de validação de certificado devido a discordância de Nome Distinguido (DN) do emissor
- Atributos EKU (Extended Key Usage) ausentes ou incorretos
Este guia abrange diferentes cenários que você pode encontrar e fornece etapas de solução de problemas para cada um. Também abordamos códigos de erro específicos e explicamos suas causas prováveis em cenários de autenticação mútua. Todas as falhas de autenticação de certificado de cliente resultam em um código de status HTTP 400 (Solicitação incorreta) sendo retornado ao cliente.
Solução de problemas de cenário - problemas de configuração
Os cenários a seguir abordam problemas de configuração comuns que podem ocorrer ao configurar a autenticação mútua. Cada cenário inclui a descrição do problema e a solução recomendada.
Certificado autoassinado
Problema
O certificado de cliente que você carregou é um certificado autoassinado e está resultando no código de erro ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate.
Solução
Verifique se o certificado autoassinado que você está usando inclui a extensão BasicConstraintsOid com o valor "2.5.29.19" e o sinalizador CA definido como TRUE. Essa extensão indica que o assunto do certificado pode atuar como uma Autoridade de Certificação.
Para verificar as propriedades do certificado, você pode usar o seguinte comando OpenSSL:
openssl x509 -in certificate.pem -text -noout
Procure por a seção "Restrições básicas" na saída, que deve mostrar "CA:TRUE" para um certificado CA válido. Para obter orientações detalhadas sobre como gerar certificados de cliente autoassinados, consulte Certificados de cliente confiáveis.
Solução de problemas de cenário - problemas de conectividade
Talvez você consiga configurar a autenticação mútua sem problemas, mas está tendo problemas ao enviar solicitações para o Application Gateway. Abordamos alguns problemas e soluções comuns na seção a seguir. Você pode encontrar a propriedade sslClientVerify nos logs de acesso do seu Application Gateway.
SslClientVerify é NONE
Problema
A propriedade sslClientVerify aparece como "NONE" em seus logs de acesso, indicando que nenhum certificado de cliente foi apresentado durante o handshake TLS.
Solução
Esse problema ocorre quando o cliente não envia um certificado de cliente na solicitação de handshake TLS para o Application Gateway. Este problema pode acontecer quando:
- O aplicativo cliente não está configurado para usar certificados de cliente
- O certificado do cliente não está instalado ou acessível corretamente
- O cliente não confia no certificado do servidor do Application Gateway
Para verificar se a autenticação do cliente está configurada corretamente no Application Gateway, use o seguinte comando OpenSSL:
openssl s_client -connect <hostname:port> -cert <path-to-certificate> -key <client-private-key-file>
Onde:
-
-certEspecifica o caminho para o certificado do cliente (certificado final) -
-keyEspecifica o caminho para o arquivo de chave privada do cliente -
-verify_return_errorgarante que o comando falha se a verificação do certificado falhar
Para obter mais informações sobre como usar o comando OpenSSL s_client , consulte a página de manual do OpenSSL.
SslClientVerify é FAILED
Problema
A propriedade sslClientVerify aparece como "FAILED" em seus logs de acesso, indicando que a validação do certificado do cliente falhou durante o handshake TLS.
Solução
Há muitas causas potenciais para falhas nos logs de acesso. Aqui está uma lista de causas comuns para falhas:
- Não é possível obter o certificado do emissor: Não foi possível encontrar o certificado do emissor do certificado do cliente. Esse problema normalmente significa que a cadeia de certificados de CA do cliente confiável não está completa no Application Gateway. Valide se a cadeia de certificados de CA de cliente confiável carregada no Application Gateway está concluída.
- Não é possível obter o certificado de emissor local: Semelhante a não conseguir obter o certificado do emissor, o certificado do emissor do cliente não pôde ser encontrado. Esse problema normalmente significa que a cadeia de certificados de CA do cliente confiável não está completa no Application Gateway. Valide se a cadeia de certificados CA de cliente fidedigna carregada no Application Gateway está completa.
- Não é possível verificar o primeiro certificado: Não é possível verificar o certificado do cliente. Este erro ocorre especificamente quando o cliente apresenta apenas o certificado folha, cujo emissor não é confiável. Valide se a cadeia de certificados CA de cliente fidedigna carregada no Application Gateway está completa.
- Não é possível verificar o emissor do certificado do cliente: Este erro ocorre quando a configuração VerifyClientCertIssuerDN está definida como true. Esse erro geralmente acontece quando o DN do emissor do certificado do cliente não corresponde ao ClientCertificateIssuerDN extraído da cadeia de certificados de CA do cliente confiável carregada pelo cliente. Para obter mais informações sobre como o Application Gateway extrai o ClientCertificateIssuerDN, confira Application Gateway extraindo DN do emissor. Como prática recomendada, certifique-se de que está carregando uma cadeia de certificados por arquivo no Application Gateway.
- Finalidade do certificado não suportada: Verifique se o certificado do cliente designa uso estendido de chaves para autenticação de cliente (1.3.6.1.5.5.7.3.2). Pode encontrar mais detalhes sobre a definição de utilização alargada de chaves e identificador de objetos para autenticação de cliente em RFC 3280 e RFC 5280.
Para obter mais informações sobre como extrair toda a cadeia de certificados de cliente fidedignos da AC a carregar para o Gateway de Aplicação, veja Como extrair cadeias de certificados de cliente fidedignos da AC.
Solução de problemas de código de erro
Os códigos de erro a seguir aparecem ao configurar a autenticação mútua. Cada erro inclui a causa provável e a solução recomendada.
Código de erro: ApplicationGatewayTrustedClientCertificateMustSpecifyData
Motivo
O arquivo de certificado carregado está faltando dados de certificado ou contém um arquivo vazio sem conteúdo de certificado válido.
Solução
Verifique se o arquivo de certificado contém dados de certificado válidos no formato correto (PEM). Use um editor de texto para confirmar se o ficheiro contém conteúdo de certificado entre os delimitadores -----BEGIN CERTIFICATE----- e -----END CERTIFICATE-----.
Código de erro: ApplicationGatewayTrustedClientCertificateMustNotHavePrivateKey
Motivo
Há uma chave privada na cadeia de certificados. Não deve haver uma chave privada na cadeia de certificados.
Solução
Verifique novamente 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
Motivo
Há duas causas potenciais para esse erro:
- Falha de análise: A cadeia de certificados não está no formato correto. O Application Gateway espera cadeias de certificados no formato PEM com certificados individuais devidamente delimitados.
- Conteúdo vazio: O arquivo carregado contém apenas delimitadores sem dados de certificado reais entre eles.
Solução
Com base na causa específica, aplique uma das seguintes soluções:
-
Problema de formato: Verifique se a cadeia de certificados está no formato PEM com cada certificado devidamente delimitado por
-----BEGIN CERTIFICATE-----e-----END CERTIFICATE-----marcadores. Cada certificado deve figurar em linhas separadas dentro destes delimitadores. - Dados em falta: Verifique se o arquivo de certificado contém dados reais do certificado entre os delimitadores, não apenas delimitadores vazios.
Código de Erro: ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate
Motivo
O certificado carregado continha apenas um certificado de folha sem um certificado CA. Carregar uma cadeia de certificados que contenha certificados de CA e um certificado intermediário é aceitável, pois o certificado intermediário seria simplesmente ignorado, mas é necessário que a cadeia inclua uma CA.
Solução
Verifique se a cadeia de certificados inclui pelo menos um certificado de autoridade de certificação com a extensão BasicConstraintsOid adequada (OID: 2.5.29.19) onde o sinalizador da autoridade de certificação está definido como TRUE. Essa extensão indica que o assunto do certificado pode atuar como uma Autoridade de Certificação.
Para verificar o status da autoridade de certificação de um certificado, use:
openssl x509 -in certificate.pem -text -noout | grep -A 2 "Basic Constraints"
A saída deve mostrar "CA:TRUE" para certificados de CA válidos.
Código de erro: ApplicationGatewayOnlyOneRootCAAllowedInTrustedClientCertificate
Motivo
A cadeia de certificados continha vários certificados de autoridade de certificação raiz ou não continha nenhuns certificados de autoridade de certificação raiz.
Solução
Os certificados carregados devem conter exatamente um certificado de autoridade de certificação raiz (e quantos certificados de autoridade de certificação intermediários, conforme necessário).