INTEGRITY Dokumentace

Konfigurace mTLS

Když zadáte hostitele API v ověřování pomocí mTLS, Cloudflare zablokuje všechny požadavky, které nemají klientský certifikát pro ověřování mTLS.

Předpoklady

Než budete moct své API nebo webovou aplikaci chránit pomocí pravidel mTLS, musíte:

Vytvoření pravidla mTLS přes Cloudflare dashboard

  1. V Cloudflare dashboardu přejděte na Client Certificates stránce.

    Přejděte na Client Certificates ↗
  2. Vyberte Vytvoření pravidla mTLS.

  3. V Custom rules, je již vyplněno několik parametrů pravidla. Zadejte cestu URI, kterou chcete chránit, do Hodnota.

  4. (Volitelné) Přidejte Hostname pole a zadejte hostname s podporou mTLS, které chcete chránit, do Hodnota.

  5. V Vyberte akci, vyberte Block.

  6. Vyberte Nasadit , aby bylo pravidlo aktivní.

Jakmile nasadíte pravidlo mTLS, všechny požadavky bez platný klientský certifikát bude zablokován.

Expression Builder

Chcete-li zkontrolovat své pravidlo mTLS v Expression Builder, vyberte ikona klíče přidružené k vašemu pravidlu.

V Expression Preview, vaše pravidlo mTLS obsahuje složený výraz vytvořený ze dvou jednoduché výrazy spojené pomocí and operátor.

První výraz, not cf.tls_client_auth.cert_verified : vrátí true , když požadavek na přístup k vašemu API nebo webové aplikaci nepředloží platný klientský certifikát.

Druhý výraz používá http.request.uri.path pole v kombinaci s in operátor, abyste zachytili cesty URI, na které se vaše pravidlo mTLS vztahuje.

Protože action pro vaše pravidlo je Block, k zadaným hostitelům mohou přistupovat jen požadavky s platným klientským certifikátem.

Cloudflare doporučuje ověřovat také hash Subject Key Identifier (SKI) vydavatele. Bez této kontroly je přijat jakýkoli platný klientský certifikát bez ohledu na to, která certifikační autorita (CA) jej vydala. Přidáním hashe SKI omezíte přístup pouze na certifikáty od konkrétní CA.

Toho můžete dosáhnout pomocí výrazu podobného tomuto:

not (cf.tls_client_auth.cert_verified and cf.tls_client_auth.cert_issuer_ski eq "A5AC554235DBA6D963B9CDE0185CFAD6E3F55E9F")

Chcete-li získat hash Subject Key Identifier (SKI) vydavatele u klientského certifikátu uloženého v mtls.crt souboru můžete spustit tento příkaz OpenSSL:

openssl x509 -noout -ext authorityKeyIdentifier -in mtls.crt | tail -n1 | tr -d ': '
A5AC554235DBA6D963B9CDE0185CFAD6E3F55E9F

Zkontrolujte odvolané certifikáty

Chcete-li zkontrolovat odvolané klientské certifikáty, můžete buď přidat nové pravidlo mTLS, nebo přidat nový výraz do výchozí pravidlo. Pro kontrolu zneplatněných certifikátů musíte použít Expression Builder.

Když požadavek obsahuje odvolaný certifikát, cf.tls_client_auth.cert_revoked pole je nastaveno na true. Pokud byste to zkombinovali s výchozí pravidlo mTLS, vypadalo by to podobně jako v tomto příkladu:

((not cf.tls_client_auth.cert_verified or cf.tls_client_auth.cert_revoked) and http.request.uri.path in {"/admin"})