Sdílet prostřednictvím


Řešení chyb vzájemného ověřování ve službě Application Gateway

Zjistěte, jak řešit problémy se vzájemným ověřováním při používání služby Application Gateway.

Přehled

Po konfiguraci vzájemného ověřování ve službě Application Gateway může při pokusu o vzájemné ověřování dojít k několika chybám. Mezi běžné příčiny chyb patří:

  • Nahrání certifikátu nebo řetězu certifikátů bez kořenového certifikátu certifikační autority
  • Nahrání řetězu certifikátů s více kořenovými certifikáty certifikační autority
  • Nahrál řetěz certifikátů, který obsahoval pouze listový certifikát bez certifikátu certifikační autority.
  • Chyby ověřování kvůli neshodě dn vystavitele

Projdeme různé scénáře, na které můžete narazit a jak tyto scénáře řešit. Pak vyřešíme kódy chyb a vysvětlíme pravděpodobné příčiny určitých kódů chyb, které se můžou zobrazit při vzájemném ověřování. Všechna selhání ověřování klientských certifikátů by měla mít za následek kód chyby HTTP 400.

Řešení potíží se scénářem – problémy s konfigurací

Při pokusu o konfiguraci vzájemného ověřování může docházet k několika scénářům. Projdeme si, jak řešit některé z nejběžnějších nástrah.

Certifikát podepsaný svým držitelem

Problém

Klientský certifikát, který jste nahráli, je certifikát podepsaný svým držitelem a výsledkem je kód chyby ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate.

Řešení

Pečlivě zkontrolujte, že certifikát podepsaný svým držitelem má rozšíření BasicConstraintsOid = "2.5.29.19", které označuje, že předmět může fungovat jako certifikační autorita. Tím zajistíte, že použitý certifikát je certifikát certifikační autority. Další informace o generování klientských certifikátů podepsaných svým držitelem najdete v tématu Důvěryhodné klientské certifikáty.

Řešení potíží se scénářem – Problémy s připojením

Možná jste mohli nakonfigurovat vzájemné ověřování bez jakýchkoli problémů, ale při odesílání žádostí do služby Application Gateway narazíte na problémy. V následující části řešíme některé běžné problémy a jejich řešení. Vlastnost sslClientVerify najdete v protokolech přístupu vaší služby Application Gateway.

SslClientVerify je NONE

Problém

Vlastnost sslClientVerify se v přístupových protokolech zobrazuje jako NONE.

Řešení

Dojde k tomu v případě, že klient při odesílání požadavku do služby Application Gateway neodešle klientský certifikát. Může k tomu dojít v případě, že klient, který odesílá požadavek do služby Application Gateway, není správně nakonfigurovaný pro používání klientských certifikátů. Jedním ze způsobů, jak ověřit, že nastavení ověřování klienta ve službě Application Gateway funguje podle očekávání, je následující příkaz OpenSSL:

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

Příznakem -cert je listový certifikát, -key příznakem je soubor privátního klíče klienta.

Další informace o tom, jak používat příkaz OpenSSL s_client , najdete na jejich ruční stránce.

SslClientVerify je neúspěšné

Problém

Vlastnost sslClientVerify se v přístupových protokolech zobrazuje jako "FAILED".

Řešení

V protokolech přístupu existuje řada potenciálních příčin selhání. Níže je seznam běžných příčin selhání:

  • Nelze získat certifikát vystavitele: Certifikát vystavitele klientského certifikátu nebyl nalezen. Obvykle to znamená, že řetěz klientských certifikátů důvěryhodné certifikační autority ve službě Application Gateway není úplný. Ověřte, že je dokončený řetěz certifikátů důvěryhodné certifikační autority nahraný ve službě Application Gateway.
  • Nelze získat certifikát místního vystavitele: Podobně jako nelze získat certifikát vystavitele, certifikát vystavitele klientského certifikátu nebyl nalezen. Obvykle to znamená, že řetěz klientských certifikátů důvěryhodné certifikační autority ve službě Application Gateway není úplný. Ověřte, že je dokončený řetěz certifikátů důvěryhodné certifikační autority nahraný ve službě Application Gateway.
  • Nelze ověřit první certifikát: Nelze ověřit klientský certifikát. K této chybě dochází konkrétně v případě, že klient předloží pouze listový certifikát od nedůvěryhodného vystavitele. Ověřte, že je dokončený řetěz certifikátů důvěryhodné certifikační autority nahraný ve službě Application Gateway.
  • Nelze ověřit vystavitele klientského certifikátu: K této chybě dochází, když je konfigurace VerifyClientCertIssuerDN nastavena na hodnotu true. K tomu obvykle dochází v případě, že název vystavitele klientského certifikátu neodpovídá clientCertificateIssuerDN extrahovaný z řetězu certifikátů důvěryhodné certifikační autority nahraného zákazníkem. Další informace o tom, jak Application Gateway extrahuje clientCertificateIssuerDN, najdete v tématu Application Gateway extrahování názvu vystavitele. Osvědčeným postupem je nahrát jeden řetěz certifikátů na soubor do služby Application Gateway.
  • Nepodporovaný účel certifikátu: Ujistěte se, že klientský certifikát určuje rozšířené použití klíče pro ověřování klientů (1.3.6.1.5.5.7.3.2). Další podrobnosti o definici rozšířeného použití klíče a identifikátoru objektu pro ověřování klientů najdete v tématech RFC 3280 a RFC 5280.

Další informace o extrahování úplného řetězu klientských certifikátů důvěryhodné certifikační autority, který se má nahrát do služby Application Gateway, najdete v tématu věnovaném extrahování řetězu klientských certifikátů důvěryhodné certifikační autority.

Řešení potíží s kódem chyby

Pokud se vám zobrazuje některý z následujících kódů chyb, máme několik doporučených řešení, která vám pomůžou problém vyřešit.

Kód chyby: ApplicationGatewayTrustedClientCertificateMustSpecifyData

Příčina

Chybí data certifikátu. Nahraný certifikát mohl být prázdný soubor bez jakýchkoli dat certifikátu.

Řešení

Ověřte, že nahraný soubor certifikátu neobsahuje žádná chybějící data.

Kód chyby: ApplicationGatewayTrustedClientCertificateMustNotHavePrivateKey

Příčina

V řetězu certifikátů je privátní klíč. V řetězu certifikátů by neměl být privátní klíč.

Řešení

Pečlivě zkontrolujte nahraný řetěz certifikátů a odeberte privátní klíč, který byl součástí řetězu. Znovu načtěte řetězec bez privátního klíče.

Kód chyby: ApplicationGatewayTrustedClientCertificateInvalidData

Příčina

Za tímto kódem chyby existují dvě možné příčiny.

  1. Analýza se nezdařila kvůli tomu, že se řetězec nezobrazuje ve správném formátu. Služba Application Gateway očekává, že řetězec certifikátů bude ve formátu PEM a očekává také, že data jednotlivých certifikátů budou oddělená.
  2. Analyzátor nic nenalezl, aby parsoval. Nahraný soubor mohl obsahovat pouze oddělovače, ale žádná data certifikátu.

Řešení

V závislosti na příčině této chyby existují dvě možná řešení.

  • Ověřte, že nahraný řetěz certifikátů byl ve správném formátu (PEM) a že data certifikátu byla správně oddělená.
  • Zkontrolujte, jestli soubor certifikátu nahraný obsahoval kromě oddělovačů i data certifikátu.

Kód chyby: ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate

Příčina

Certifikát nahraný jenom obsahoval listový certifikát bez certifikátu certifikační autority. Nahrání řetězu certifikátů s certifikáty certifikační autority a listový certifikát je přijatelný, protože listový certifikát by se ignoroval, ale certifikát musí mít certifikační autoritu.

Řešení

Pečlivě zkontrolujte řetězec certifikátů, který byl nahraný, obsahoval více než jen listový certifikát. Rozšíření BasicConstraintsOid = "2.5.29.19" by mělo být přítomno a indikuje, že předmět může fungovat jako certifikační autorita.

Kód chyby: ApplicationGatewayOnlyOneRootCAAllowedInTrustedClientCertificate

Příčina

Řetěz certifikátů obsahoval více kořenových certifikátů certifikační autority nebo obsahoval nulové kořenové certifikační autority.

Řešení

Nahrané certifikáty musí obsahovat přesně jeden kořenový certifikát certifikační autority (a podle potřeby ale mnoho zprostředkujících certifikátů certifikační autority).