Dela via


Felsöka ömsesidiga autentiseringsfel i Application Gateway

Lär dig hur du felsöker problem med ömsesidig autentisering när du använder Application Gateway.

Översikt

När du har konfigurerat ömsesidig autentisering på en Application Gateway kan det finnas ett antal fel som visas när du försöker använda ömsesidig autentisering. Några vanliga orsaker till fel är:

  • Laddade upp ett certifikat eller en certifikatkedja utan ett rotcertifikatutfärdarcertifikat
  • Överförde en certifikatkedja med flera rotcertifikatutfärdarcertifikat
  • Överförde en certifikatkedja som endast innehöll ett lövcertifikat utan ett CA-certifikat
  • Valideringsfel på grund av felmatchning av utfärdarens DN

Vi går igenom olika scenarier som du kan stöta på och hur du felsöker dessa scenarier. Vi tar sedan itu med felkoder och förklarar troliga orsaker till vissa felkoder som du kanske ser med ömsesidig autentisering. Alla fel vid autentisering av klientcertifikat bör resultera i en HTTP 400-felkod.

Felsökning av scenario – konfigurationsproblem

Det finns några scenarier som du kan stöta på när du försöker konfigurera ömsesidig autentisering. Vi går igenom hur du felsöker några av de vanligaste fallgroparna.

Självsignerat certifikat

Problem

Klientcertifikatet som du laddade upp är ett självsignerat certifikat och resulterar i felkoden ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate.

Lösning

Dubbelkolla att det självsignerade certifikatet som du använder har tillägget BasicConstraintsOid = "2.5.29.19" som anger att ämnet kan fungera som certifikatutfärdare. Detta säkerställer att certifikatet som används är ett CA-certifikat. Mer information om hur du genererar självsignerade klientcertifikat finns i betrodda klientcertifikat.

Felsökning av scenario – anslutningsproblem

Du kanske har kunnat konfigurera ömsesidig autentisering utan problem, men du stöter på problem när du skickar begäranden till din Application Gateway. Vi tar itu med några vanliga problem och lösningar i följande avsnitt. Du hittar egenskapen sslClientVerify i åtkomstloggarna för din Application Gateway.

SslClientVerify är NONE

Problem

Egenskapen sslClientVerify visas som "NONE" i dina åtkomstloggar.

Lösning

Detta visas när klienten inte skickar ett klientcertifikat när en begäran skickas till Application Gateway. Detta kan inträffa om klienten som skickar begäran till Application Gateway inte är korrekt konfigurerad för att använda klientcertifikat. Ett sätt att kontrollera att klientautentiseringskonfigurationen på Application Gateway fungerar som förväntat är via följande OpenSSL-kommando:

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

Flaggan -cert är lövcertifikatet, -key flaggan är klientens privata nyckelfil.

Mer information om hur du använder OpenSSL-kommandot s_client finns på deras manuella sida.

SslClientVerify är MISSLYCKAD

Problem

Egenskapen sslClientVerify visas som "FAILED" i dina åtkomstloggar.

Lösning

Det finns ett antal potentiella orsaker till fel i åtkomstloggarna. Nedan visas en lista över vanliga orsaker till fel:

  • Det gick inte att hämta utfärdarcertifikatet: Det gick inte att hitta utfärdarcertifikatet för klientcertifikatet. Detta innebär vanligtvis att den betrodda CA-certifikatkedjan för klienten inte är fullständig på Application Gateway. Kontrollera att certifikatkedjan för den betrodda klientcertifikatutfärdare som laddats upp på Application Gateway är klar.
  • Det gick inte att hämta det lokala utfärdarcertifikatet: Det gick inte att hitta utfärdarcertifikatet för klientcertifikatet på liknande sätt som det inte gick att hämta utfärdarcertifikatet. Detta innebär vanligtvis att den betrodda CA-certifikatkedjan för klienten inte är fullständig på Application Gateway. Kontrollera att certifikatkedjan för den betrodda klientcertifikatutfärdare som laddats upp på Application Gateway är klar.
  • Det går inte att verifiera det första certifikatet: Det går inte att verifiera klientcertifikatet. Det här felet uppstår specifikt när klienten endast presenterar lövcertifikatet, vars utfärdare inte är betrodd. Kontrollera att certifikatkedjan för den betrodda klientcertifikatutfärdare som laddats upp på Application Gateway är klar.
  • Det går inte att verifiera utfärdaren av klientcertifikatet: Det här felet uppstår när konfigurationen VerifyClientCertIssuerDN är inställd på true. Detta inträffar vanligtvis när utfärdarens DN för klientcertifikatet inte matchar ClientCertificateIssuerDN som extraherats från certifikatkedjan för den betrodda klientcertifikatutfärdaren som laddats upp av kunden. Mer information om hur Application Gateway extraherar ClientCertificateIssuerDN finns i Programgatewayens extraherande utfärdare DN. Vi rekommenderar att du laddar upp en certifikatkedja per fil till Application Gateway.
  • Certifikatsyfte som inte stöds: Kontrollera att klientcertifikatet anger utökad nyckelanvändning för klientautentisering (1.3.6.1.5.5.7.3.2). Mer information om definitionen av utökad nyckelanvändning och objektidentifierare för klientautentisering finns i RFC 3280 och RFC 5280.

Mer information om hur du extraherar hela certifikatkedjan för den betrodda klientcertifikatutfärdaren som ska laddas upp till Application Gateway finns i Så här extraherar du betrodda klient-CA-certifikatkedjor.

Felkodsfelsökning

Om du ser någon av följande felkoder har vi några rekommenderade lösningar som hjälper dig att lösa problemet.

Felkod: ApplicationGatewayTrustedClientCertificateMustSpecifyData

Orsak

Det finns certifikatdata som saknas. Det uppladdade certifikatet kunde ha varit en tom fil utan certifikatdata.

Lösning

Kontrollera att den uppladdade certifikatfilen inte har några data som saknas.

Felkod: ApplicationGatewayTrustedClientCertificateMustNotHavePrivateKey

Orsak

Det finns en privat nyckel i certifikatkedjan. Det ska inte finnas någon privat nyckel i certifikatkedjan.

Lösning

Dubbelkolla certifikatkedjan som laddades upp och ta bort den privata nyckeln som ingick i kedjan. Ladda upp kedjan igen utan den privata nyckeln.

Felkod: ApplicationGatewayTrustedClientCertificateInvalidData

Orsak

Det finns två möjliga orsaker bakom den här felkoden.

  1. Parsningen misslyckades på grund av att kedjan inte visades i rätt format. Application Gateway förväntar sig att en certifikatkedja är i PEM-format och förväntar sig även att enskilda certifikatdata avgränsas.
  2. Parsern hittade inget att parsa. Filen som laddades upp kunde potentiellt bara ha haft avgränsarna men inga certifikatdata.

Lösning

Beroende på orsaken till det här felet finns det två möjliga lösningar.

  • Kontrollera att den uppladdade certifikatkedjan var i rätt format (PEM) och att certifikatdata var korrekt avgränsade.
  • Kontrollera att certifikatfilen som laddades upp innehöll certifikatdata utöver avgränsarna.

Felkod: ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate

Orsak

Certifikatet som laddades upp innehöll endast ett lövcertifikat utan ett CA-certifikat. Att ladda upp en certifikatkedja med CA-certifikat och ett lövcertifikat är acceptabelt eftersom lövcertifikatet bara skulle ignoreras, men ett certifikat måste ha en certifikatutfärdare.

Lösning

Dubbelkolla certifikatkedjan som laddades upp innehåller mer än bara lövcertifikatet. Tillägget BasicConstraintsOid = "2.5.29.19" ska vara närvarande och ange att ämnet kan fungera som en ca.

Felkod: ApplicationGatewayOnlyOneRootCAAllowedInTrustedClientCertificate

Orsak

Certifikatkedjan innehöll flera rotcertifikatutfärdarcertifikat eller innehöll noll rotcertifikatutfärdarcertifikat.

Lösning

Uppladdade certifikat måste innehålla exakt ett rotcertifikatutfärdarcertifikat (och hur många mellanliggande CA-certifikat som än behövs).