INTEGRITY Dokumentace

Klientský certifikát

Atribut stavu zařízení Client Certificate kontroluje, zda zařízení disponuje platným klientským certifikátem podepsaným důvěryhodným certifikátem. Důvěryhodný certifikát se nahraje do Cloudflare a určí se jako součást pravidla kontroly stavu. Kontrolu stavu klientského certifikátu lze použít v zásadách Gateway a Access k ověření, že se uživatel připojuje ze spravovaného zařízení.

Dostupnost funkcí

Klientské režimy Plány Zero Trust
Všechny režimy Všechny plány
Systém Dostupnost Minimální verze klienta1
Windows 2024.6.415.0
macOS 2024.6.416.0
Linux 2024.6.497.0
iOS
Android
ChromeOS

1 Kontroly klientských certifikátů, které proběhly ve starší verzi Cloudflare One Client, budou nadále fungovat. Chcete-li nakonfigurovat novou kontrolu certifikátu, aktualizujte Cloudflare One Client na některou z výše uvedených verzí.

Předpoklady

Konfigurace kontroly klientského certifikátu

  1. Použijte Endpoint pro nahrání certifikátu mTLS k nahrání certifikátu a privátního klíče do Cloudflare. Certifikát musí být podepisovací certifikát, formátovaný jako jeden řetězec s \n a nahraďte zalomení řádků. Privátní klíč je nutný pouze v případě, že tento vlastní certifikát používáte pro kontrolu HTTPS ve službě Gateway.

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Account: SSL and Certificates Write
    Nahrání certifikátu mTLS
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/mtls_certificates" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"name": "example_ca_cert",
    		"certificates": "-----BEGIN CERTIFICATE-----\nXXXXX\n-----END CERTIFICATE-----",
    		"private_key": "-----BEGIN PRIVATE KEY-----\nXXXXX\n-----END PRIVATE KEY-----",
    		"ca": true
    	}'

    Odpověď vrátí UUID certifikátu. Například:

    {
      "success": true,
      "errors": [],
      "messages": [],
      "result": {
        "id": "2458ce5a-0c35-4c7f-82c7-8e9487d3ff60",
        "name": "example_ca_cert",
        "issuer": "O=Example Inc.,L=California,ST=San Francisco,C=US",
        "signature": "SHA256WithRSA",
        ...
      }
    }
  2. V Cloudflare dashboard, přejděte na Zero Trust > Znovupoužitelné komponenty > Kontroly stavu.

  3. Přejděte na Kontroly Cloudflare One Client a vyberte Přidejte kontrolu.

  4. Vyberte Klientský certifikát.

  5. Zobrazí se výzva k zadání následujících informací:

    1. Název: Zadejte jedinečný název pro tuto kontrolu stavu zařízení.

    2. Operační systém: Vyberte svůj operační systém.

    3. Umístění OS: Zadejte umístění, kde je nainstalován klientský certifikát.

      Windows

      • Úložiště důvěryhodnosti lokálního počítače
      • Úložiště důvěryhodných certifikátů uživatele

      macOS

      • System keychain

      Linux

      • NSSDB (/etc/pki/nssdb) - Chcete-li vyhledat ve vlastním umístění, zadejte absolutní cestu k souboru (souborům) s certifikátem a privátním klíčem (například /usr/local/mycompany/certs/client.pem a /usr/local/mycompany/certs/client_key.pem). Certifikát a soukromý klíč musí být ve formátu PEM formátu. Mohou být buď ve dvou různých souborech, nebo v jednom souboru.
    4. Certificate ID: Zadejte UUID podepisovacího certifikátu.

    5. obecný název: (Volitelné) Chcete-li na klientském certifikátu zkontrolovat Common Name (CN), zadejte řetězec s volitelnými ${serial_number} a ${hostname} proměnné (například ${serial_number}_mycompany). Cloudflare One Client vyhledá přesnou shodu bez rozlišování velikosti písmen. Pokud nezadáte common name, Cloudflare One Client pole common name na certifikátu ignoruje.

    6. Zkontrolujte pole Extended Key Usage: (Volitelné) Zkontrolujte, zda má klientský certifikát nastavené jeden nebo více atributů. Podporované hodnoty jsou Ověření klienta (1.3.6.1.5.5.7.3.2) a/nebo E-mail (1.3.6.1.5.5.7.3.4).

    7. Zkontrolujte privátní klíč: (Doporučeno) Je-li povoleno, WARP ověří, že zařízení má soukromý klíč přiřazený ke klientskému certifikátu.

    8. Subject Alternative Name: (Volitelné) Chcete-li na klientském certifikátu zkontrolovat Subject Alternative Name (SAN), zadejte řetězec s volitelnými ${serial_number} a ${hostname} proměnné (například ${serial_number}_mycompany). Cloudflare One Client vyhledá přesnou shodu bez rozlišování velikosti písmen. Ke kontrole stavu zařízení můžete přidat více SAN: aby kontrola prošla, stačí, aby certifikát odpovídal jedné z nich.

  6. Vyberte Save.

Dále přejděte do Insights > Protokoly > Protokoly stavu a ověřte, že kontrola klientského certifikátu vrací očekávané výsledky.

Řešení potíží

Pomocí následujících příkazů můžete zkontrolovat, zda je klientský certifikát na zařízení správně nainstalovaný a důvěryhodný.

  1. Otevřete okno PowerShell.
  2. Chcete-li vyhledat certifikát s konkrétním common name v úložišti důvěryhodných certifikátů lokálního počítače, spusťte následující příkaz:
Get-ChildItem Cert:\LocalMachine\My\ | where{$_.Subject -like "*<COMMON_NAME>*"}
  1. Chcete-li vyhledat certifikát s konkrétním common name v úložišti důvěryhodných certifikátů uživatele, spusťte následující příkaz:
Get-ChildItem Cert:\CurrentUser\My\ | where{$_.Subject -like "*<COMMON_NAME>*"}
  1. Otevřete Terminal.
  2. Chcete-li v System Keychain vyhledat certifikát s konkrétním common name, spusťte následující příkaz:
/usr/bin/security find-certificate -c "<COMMON_NAME>" -p /Library/Keychains/System.keychain
  1. Otevřete Terminal.
  2. Chcete-li vypsat všechny klientské certifikáty v NSSDB, spusťte následující příkaz:
certutil -L -d /etc/pki/nssdb
Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

meow                                                         CTu,Cu,Cu
noPrivateKey                                                 CT,,
  1. Otevřete požadovaný certifikát podle jeho přezdívky. Obecný název se zobrazí v řádku Subject: "CN=123456.mycompany".
certutil -L -d /etc/pki/nssdb -n meow
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 236 (0xec)
        Signature Algorithm: PKCS #1 SHA-256 With RSA Encryption
        Issuer: "CN=123456.mycompany"
        Validity:
            Not Before: Tue Jul 02 17:20:40 2024
            Not After : Sun Jul 02 17:20:40 2034
        Subject: "CN=123456.mycompany"
        Subject Public Key Info:
            Public Key Algorithm: PKCS #1 RSA Encryption
            RSA Public Key:
                Modulus:
                    <redacted>
                Exponent: 65537 (0x10001)
    Signature Algorithm: PKCS #1 SHA-256 With RSA Encryption
    Signature:
        <redacted>
    Fingerprint (SHA-256):
        <redacted>
    Fingerprint (SHA1):
        <redacted>

    Mozilla-CA-Policy: false (attribute missing)
    Certificate Trust Flags:
        SSL Flags:
            Valid CA
            Trusted CA
            User
            Trusted Client CA
        Email Flags:
            Valid CA
            Trusted CA
            User
        Object Signing Flags:
            Valid CA
            Trusted CA
            User

Aby kontrola stavu zařízení prošla, musí se ve výstupu objevit certifikát platný vůči nahranému podepisovacímu certifikátu.