← Cloudflare One / cloudflare-one / reusable-components / posture-checks / client-checks
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
-
Certifikační autorita, která vydává klientské certifikáty pro vaše zařízení. Cloudflare One Client nevyhodnocuje řetězec důvěryhodnosti certifikátu, proto musí jít o vydávající certifikát.
-
Cloudflare One Client je nasazeno na zařízení.
-
Klientský certifikát je nainstalovaný a důvěryhodný na zařízení.
Konfigurace kontroly klientského certifikátu
-
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
\na 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.
Alespoň jeden z následujících oprávnění tokenu je povinné:Požadovaná oprávnění API tokenu
Account: SSL and Certificates Write
Nahrání certifikátu mTLScurl "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", ... } } -
V Cloudflare dashboard ↗, přejděte na Zero Trust > Znovupoužitelné komponenty > Kontroly stavu.
-
Přejděte na Kontroly Cloudflare One Client a vyberte Přidejte kontrolu.
-
Vyberte Klientský certifikát.
-
Zobrazí se výzva k zadání následujících informací:
-
Název: Zadejte jedinečný název pro tuto kontrolu stavu zařízení.
-
Operační systém: Vyberte svůj operační systém.
-
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.pema/usr/local/mycompany/certs/client_key.pem). Certifikát a soukromý klíč musí být ve formátuPEMformátu. Mohou být buď ve dvou různých souborech, nebo v jednom souboru.
-
Certificate ID: Zadejte UUID podepisovacího certifikátu.
-
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. -
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). -
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.
-
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.
-
-
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ý.
- Otevřete okno PowerShell.
- 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>*"}- 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>*"}- Otevřete Terminal.
- 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- Otevřete Terminal.
- Chcete-li vypsat všechny klientské certifikáty v NSSDB, spusťte následující příkaz:
certutil -L -d /etc/pki/nssdbCertificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
meow CTu,Cu,Cu
noPrivateKey CT,,- 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 meowCertificate:
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
UserAby kontrola stavu zařízení prošla, musí se ve výstupu objevit certifikát platný vůči nahranému podepisovacímu certifikátu.