Problemen met wederzijdse verificatie oplossen in Application Gateway
Meer informatie over het oplossen van problemen met wederzijdse verificatie bij het gebruik van Application Gateway.
Overzicht
Na het configureren van wederzijdse verificatie op een Application Gateway kunnen er een aantal fouten optreden bij het gebruik van wederzijdse verificatie. Enkele veelvoorkomende oorzaken van fouten zijn:
- Een certificaat of certificaatketen zonder basis-CA-certificaat geüpload
- Een certificaatketen met meerdere basis-CA-certificaten geüpload
- Een certificaatketen geüpload die alleen een leaf-certificaat bevatte zonder een CA-certificaat
- Validatiefouten vanwege DN-verlener komen niet overeen
We doorlopen verschillende scenario's die u kunt tegenkomen en hoe u deze scenario's kunt oplossen. Vervolgens behandelen we foutcodes en leggen we mogelijke oorzaken uit voor bepaalde foutcodes die u mogelijk ziet met wederzijdse verificatie. Alle verificatiefouten met clientcertificaten moeten resulteren in een HTTP 400-foutcode.
Problemen met scenario's oplossen - configuratieproblemen
Er zijn enkele scenario's waarmee u mogelijk te maken hebt bij het configureren van wederzijdse verificatie. We gaan een aantal van de meest voorkomende valkuilen oplossen.
Zelfondertekend certificaat
Probleem
Het clientcertificaat dat u hebt geüpload, is een zelfondertekend certificaat en resulteert in de foutcode ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate.
Oplossing
Controleer of het zelfondertekende certificaat dat u gebruikt, de extensie BasicConstraintsOid = "2.5.29.19" heeft die aangeeft dat het onderwerp kan fungeren als een CA. Dit zorgt ervoor dat het gebruikte certificaat een CA-certificaat is. Raadpleeg vertrouwde clientcertificaten voor meer informatie over het genereren van zelfondertekende clientcertificaten.
Problemen met scenario's oplossen - connectiviteitsproblemen
Mogelijk hebt u wederzijdse verificatie zonder problemen kunnen configureren, maar u ondervindt problemen bij het verzenden van aanvragen naar uw Application Gateway. In de volgende sectie worden enkele veelvoorkomende problemen en oplossingen opgelost. U vindt de eigenschap sslClientVerify in de toegangslogboeken van uw Application Gateway.
SslClientVerify is NONE
Probleem
De eigenschap sslClientVerify wordt weergegeven als 'NONE' in uw toegangslogboeken.
Oplossing
Dit wordt weergegeven wanneer de client geen clientcertificaat verzendt bij het verzenden van een aanvraag naar de Application Gateway. Dit kan gebeuren als de client die de aanvraag naar de Application Gateway niet correct is geconfigureerd voor het gebruik van clientcertificaten. Een manier om te controleren of de installatie van clientverificatie in Application Gateway werkt zoals verwacht, is via de volgende OpenSSL-opdracht:
openssl s_client -connect <hostname:port> -cert <path-to-certificate> -key <client-private-key-file>
De -cert
vlag is het leaf-certificaat, de vlag is het persoonlijke sleutelbestand van de -key
client.
Raadpleeg de handmatige pagina voor meer informatie over het gebruik van de OpenSSL-opdracht.s_client
SslClientVerify is MISLUKT
Probleem
De eigenschap sslClientVerify wordt weergegeven als 'MISLUKT' in uw toegangslogboeken.
Oplossing
Er zijn een aantal mogelijke oorzaken voor fouten in de toegangslogboeken. Hieronder ziet u een lijst met veelvoorkomende oorzaken voor fouten:
- Kan certificaat voor verlener niet ophalen: het certificaat van de uitgever van het clientcertificaat is niet gevonden. Dit betekent normaal gesproken dat de ca-certificaatketen van de vertrouwde client niet volledig is op de Application Gateway. Controleer of de certificaatketen van de vertrouwde client-CA die is geüpload op de Application Gateway is voltooid.
- Kan geen lokaal certificaat voor verleners ophalen: het certificaat van de uitgever van het clientcertificaat kan niet worden gevonden. Dit betekent normaal gesproken dat de ca-certificaatketen van de vertrouwde client niet volledig is op de Application Gateway. Controleer of de certificaatketen van de vertrouwde client-CA die is geüpload op de Application Gateway is voltooid.
- Kan het eerste certificaat niet verifiëren: kan het clientcertificaat niet verifiëren. Deze fout treedt met name op wanneer de client alleen het leaf-certificaat presenteert, waarvan de verlener niet wordt vertrouwd. Controleer of de certificaatketen van de vertrouwde client-CA die is geüpload op de Application Gateway is voltooid.
- Kan de certificaatverlener van het clientcertificaat niet verifiëren: deze fout treedt op wanneer de configuratie VerifyClientCertIssuerDN is ingesteld op true. Dit gebeurt meestal wanneer de verlener-DN van het clientcertificaat niet overeenkomt met de ClientCertificateIssuerDN die is geëxtraheerd uit de certificaatketen van de vertrouwde client-CA die door de klant is geüpload. Voor meer informatie over hoe Application Gateway de ClientCertificateIssuerDN extraheert, bekijkt u Application Gateway die verlener-DN extraheert. Als best practice moet u ervoor zorgen dat u één certificaatketen per bestand uploadt naar Application Gateway.
- Niet-ondersteund certificaatdoel: zorg ervoor dat het clientcertificaat uitgebreide sleutelgebruik aanwijst voor clientverificatie (1.3.6.1.5.5.7.3.2). Meer informatie over de definitie van uitgebreid sleutelgebruik en object-id voor clientverificatie vindt u in RFC 3280 en RFC 5280.
Zie Ca-certificaatketens voor vertrouwde clients extraheren voor meer informatie over het extraheren van de volledige ca-certificaatketen van vertrouwde clients om te uploaden naar Application Gateway.
Probleemoplossing voor foutcodes
Als u een van de volgende foutcodes ziet, hebben we een aantal aanbevolen oplossingen om het probleem op te lossen dat u mogelijk ondervindt.
Foutcode: ApplicationGatewayTrustedClientCertificateMustSpecifyData
Oorzaak
Er ontbreken certificaatgegevens. Het geüploade certificaat kan een leeg bestand zijn zonder certificaatgegevens.
Oplossing
Controleer of het geüploade certificaatbestand geen ontbrekende gegevens bevat.
Foutcode: ApplicationGatewayTrustedClientCertificateMustNotHavePrivateKey
Oorzaak
Er is een persoonlijke sleutel in de certificaatketen. Er mag geen persoonlijke sleutel in de certificaatketen zijn.
Oplossing
Controleer de certificaatketen die is geüpload en verwijder de persoonlijke sleutel die deel uitmaakt van de keten. Laad de keten opnieuw zonder de persoonlijke sleutel.
Foutcode: ApplicationGatewayTrustedClientCertificateInvalidData
Oorzaak
Er zijn twee mogelijke oorzaken achter deze foutcode.
- Het parseren is mislukt omdat de keten niet in de juiste indeling wordt weergegeven. Application Gateway verwacht dat een certificaatketen een PEM-indeling heeft en verwacht ook dat afzonderlijke certificaatgegevens worden gescheiden.
- De parser heeft niets gevonden om te parseren. Het geüploade bestand kan mogelijk alleen de scheidingstekens hebben, maar geen certificaatgegevens.
Oplossing
Afhankelijk van de oorzaak van deze fout zijn er twee mogelijke oplossingen.
- Controleer of de geüploade certificaatketen de juiste indeling (PEM) heeft en of de certificaatgegevens juist zijn gescheiden.
- Controleer of het certificaatbestand dat is geüpload, de certificaatgegevens bevat naast de scheidingstekens.
Foutcode: ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate
Oorzaak
Het certificaat dat is geüpload, bevatte alleen een bladcertificaat zonder een CA-certificaat. Het uploaden van een certificaatketen met CA-certificaten en een leaf-certificaat is acceptabel omdat het bladcertificaat gewoon wordt genegeerd, maar een certificaat moet een CA hebben.
Oplossing
Controleer de certificaatketen die is geüpload meer dan alleen het leaf-certificaat. De BasicConstraintsOid = "2.5.29.19" extensie moet aanwezig zijn en aangeven dat het onderwerp kan fungeren als een CA.
Foutcode: ApplicationGatewayOnlyOneRootCAAllowedInTrustedClientCertificate
Oorzaak
De certificaatketen bevat meerdere basis-CA-certificaten of nul basis-CA-certificaten.
Oplossing
Certificaten die zijn geüpload, moeten precies één basis-CA-certificaat bevatten (en nochtans veel tussenliggende CA-certificaten indien nodig).