Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
Při vzájemném ověřování ve službě Application Gateway může po konfiguraci dojít k různým chybám při ověřování certifikátu klienta. Mezi běžné příčiny těchto chyb patří:
- Nahrání certifikátu nebo řetězu certifikátů bez kořenového certifikátu certifikační autority
- Nahrajte řetězec certifikátů s více kořenovými certifikáty CA
- Nahrání řetězu certifikátů, který obsahuje pouze listový certifikát bez certifikátu certifikační autority
- Chyby ověřování certifikátu kvůli neshodě rozlišujícího názvu (DN) vystavitele.
- Chybějící nebo nesprávné atributy rozšířeného použití klíče (EKU)
Tato příručka popisuje různé scénáře, se kterými se můžete setkat, a obsahuje kroky pro řešení potíží pro každou z nich. Řešíme také konkrétní kódy chyb a vysvětlujeme jejich pravděpodobné příčiny ve scénářích vzájemného ověřování. Všechna selhání ověřování klientských certifikátů způsobí vrácení stavového kódu HTTP 400 (Chybný požadavek) klientovi.
Řešení potíží se scénářem – problémy s konfigurací
Následující scénáře řeší běžné problémy s konfigurací, ke kterým může dojít při nastavování vzájemného ověřování. Každý scénář obsahuje popis problému a doporučené řešení.
Certifikát podepsaný svým držitelem
Problém
Klientský certifikát, který jste nahráli, je certifikát podepsaný svým držitelem, což má za následek kód chyby ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate.
Řešení
Ověřte, že certifikát podepsaný svým držitelem zahrnuje rozšíření BasicConstraintsOid s hodnotou 2.5.29.19 a příznakem certifikační autority nastavenou na HODNOTU TRUE. Toto rozšíření označuje, že subjekt certifikátu může fungovat jako certifikační autorita.
Ke kontrole vlastností certifikátu můžete použít následující příkaz OpenSSL:
openssl x509 -in certificate.pem -text -noout
Ve výstupu vyhledejte část "Základní omezení", která by měla u platného certifikátu certifikační autority zobrazit "CA:TRUE". Podrobné pokyny k 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á budete moct nakonfigurovat vzájemné ověřování bez jakýchkoli problémů, ale při odesílání požadavků 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 zobrazí jako NONE, což značí, že během metody handshake protokolu TLS nebyl předložen žádný klientský certifikát.
Řešení
K tomuto problému dochází v případě, že klient neodesílá klientský certifikát v požadavku handshake protokolu TLS do služby Application Gateway. K tomuto problému může dojít v těchto případech:
- Klientská aplikace není nakonfigurovaná tak, aby používala klientské certifikáty.
- Klientský certifikát není správně nainstalovaný nebo přístupný.
- Klient nedůvěřuje certifikátu serveru služby Application Gateway.
Pokud chcete ověřit, že je ve službě Application Gateway správně nakonfigurované ověřování klientů, použijte následující příkaz OpenSSL:
openssl s_client -connect <hostname:port> -cert <path-to-certificate> -key <client-private-key-file>
Kde:
-
-certurčuje cestu k klientskému certifikátu (listový certifikát). -
-keyurčuje cestu k souboru privátního klíče klienta. -
-verify_return_errorzajišťuje selhání příkazu v případě selhání ověření certifikátu.
Další informace o použití příkazu OpenSSL s_client naleznete na ruční stránce OpenSSL.
SslClientVerify je neúspěšné
Problém
Vlastnost sslClientVerify se v přístupových protokolech zobrazí jako "SELHÁNÍ", což značí, že ověření klientského certifikátu selhalo během metody handshake protokolu TLS.
Řešení
V protokolech přístupu existuje mnoho možných příčin selhání. Tady je seznam běžných příčin selhání:
- Nelze získat certifikát vystavitele: Certifikát vystavitele klientského certifikátu nebyl nalezen. Tento problém obvykle znamená, že řetěz certifikátů důvěryhodné certifikační autority klienta není ve službě Application Gateway dokončený. Ověřte, že je dokončený řetězec certifikátů důvěryhodné klientské certifikační autority nahraný do služby Application Gateway.
- Nelze získat certifikát místního vystavitele: Podobně jako nelze získat certifikát vystavitele, nebyl nalezen certifikát vystavitele klientského certifikátu. Tento problém obvykle znamená, že řetěz certifikátů důvěryhodné certifikační autority klienta není ve službě Application Gateway dokončený. Ověřte, že je dokončený řetězec certifikátů důvěryhodné klientské certifikační autority nahraný do služby Application Gateway.
- První certifikát nejde ověřit: Nelze ověřit klientský certifikát. K této chybě dochází konkrétně v případě, že klient prezentuje pouze listový certifikát, jehož vystavitel není důvěryhodný. Ověřte, že je dokončený řetězec certifikátů důvěryhodné klientské certifikační autority nahraný do služby 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 této chybě obvykle dochází, když DN vystavitele klientského certifikátu neodpovídá ClientCertificateIssuerDN extrahovanému z řetězu certifikátů důvěryhodné certifikační autority, který byl nahrán zákazníkem. Další informace o tom, jak Application Gateway extrahuje ClientCertificateIssuerDN, najdete v Application Gateway extrakce vystavitele DN. 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
Při konfiguraci vzájemného ověřování se zobrazí následující kódy chyb. Každá chyba zahrnuje pravděpodobnou příčinu a doporučené řešení.
Kód chyby: ApplicationGatewayTrustedClientCertificateMustSpecifyData
Příčina
Nahraný soubor certifikátu chybí data certifikátu nebo obsahuje prázdný soubor bez platného obsahu certifikátu.
Řešení
Ověřte, že soubor certifikátu obsahuje platná data certifikátu ve správném formátu (PEM). Pomocí textového editoru ověřte, že soubor obsahuje obsah certifikátu mezi oddělovači -----BEGIN CERTIFICATE----- a -----END CERTIFICATE-----.
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 nahrajte řetězec bez privátního klíče.
Kód chyby: ApplicationGatewayTrustedClientCertificateInvalidData
Příčina
Tato chyba má dvě možné příčiny:
- Selhání analýzy: Řetěz certifikátů není ve správném formátu. Application Gateway očekává řetězy certifikátů ve formátu PEM s správně oddělenými jednotlivými certifikáty.
- Prázdný obsah: Nahraný soubor obsahuje pouze oddělovače bez skutečných dat certifikátu.
Řešení
Na základě konkrétní příčiny použijte jedno z následujících řešení:
-
Problém s formátováním: Ujistěte se, že je řetěz certifikátů ve formátu PEM s odpovídajícím oddělovačem
-----BEGIN CERTIFICATE-----a-----END CERTIFICATE-----značkami každého certifikátu. Každý certifikát by měl být na samostatných řádcích v rámci těchto oddělovačů. - Chybějící data: Ověřte, že soubor certifikátu obsahuje skutečné údaje certifikátu mezi oddělovači, nejen prázdné oddělovače.
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ými certifikáty je přijatelné, protože listové certifikáty by se ignorovaly, ale každá certifikace musí být vystavena certifikační autoritou.
Řešení
Ujistěte se, že řetěz certifikátů obsahuje alespoň jeden certifikát certifikační autority se správným rozšířením BasicConstraintsOid (OID: 2.5.29.19), kde je příznak CA nastavený na HODNOTU TRUE. Toto rozšíření označuje, že subjekt certifikátu může fungovat jako certifikační autorita.
Pokud chcete ověřit stav certifikační autority certifikátu, použijte:
openssl x509 -in certificate.pem -text -noout | grep -A 2 "Basic Constraints"
Výstup by měl u platných certifikátů certifikační autority zobrazit "CA:TRUE".
Kód chyby: ApplicationGatewayOnlyOneRootCAAllowedInTrustedClientCertificate (je povoleno pouze jedno kořenové certifikační autorita v důvěryhodném klientském certifikátu)
Příčina
Řetěz certifikátů obsahoval více kořenových certifikátů certifikační autority nebo neobsahoval žádné kořenové certifikáty 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).