← Cloudflare SSL/TLS / ssl / client-certificates
Bring your own CA for mTLS
Tato stránka vysvětluje, jak spravovat klientské certifikáty, které nebyly vydány certifikační autoritou Cloudflare. Pro širší přehled si přečtěte výuková cesta mTLS na Cloudflare.
Bring your own CA (BYOCA) je užitečné zejména v případě, že již máte implementováno mTLS a klientské certifikáty jsou již nainstalované na zařízeních.
Dostupnost
- Tato funkce je dostupná pouze pro účty Enterprise.
- Každý účet Enterprise může nahrát až pět CA. Tato kvóta se nevztahuje na CA nahrané přes Cloudflare Access.
- Kvóta certifikátů CA je sdílena napříč API Shield, Workers mTLS, a Cloudflare Gateway.
- Chcete-li tuto kvótu navýšit, kontaktujte tým, který spravuje váš účet.
Požadavky na certifikát CA
Když nahrajete svou certifikační autoritu, Cloudflare ověří certifikát podle určitých požadavků.
-
Certifikát CA může pocházet od veřejně důvěryhodné CA nebo být self-signed.
-
V certifikátu
Basic Constraints, atributCAmusí být nastaven naTRUE. -
Certifikát musí používat jeden z níže uvedených podpisových algoritmů:
Povolené algoritmy podpisu
x509.SHA1WithRSAx509.SHA256WithRSAx509.SHA384WithRSAx509.SHA512WithRSAx509.ECDSAWithSHA1x509.ECDSAWithSHA256x509.ECDSAWithSHA384x509.ECDSAWithSHA512
Nastavte mTLS s vlastní certifikační autoritou
-
V dashboardu Cloudflare přejděte na Client Certificates stránce.
Přejděte na Client Certificates ↗ -
Vyberte Add Certificate.
-
V Certifikační autorita rozbalovací nabídce vyberte Bring your own CA.
-
Nahrajte soubor certifikátu CA (ve formátu PEM) a zadejte název CA.
-
Vyberte Pokračovat.
-
Na Přiřaďte hostitelské názvy stránce zadejte hostname, který má tuto CA používat pro ověřování mTLS, a vyberte Přidat pro každý z nich. Tento krok můžete také přeskočit a hostname přiřadit později.
-
Vyberte Save a potvrďte.
- Použijte Endpoint pro nahrání certifikátu mTLS k nahrání kořenového certifikátu CA.
-
cabooleovská hodnota je povinná- Nastavte na
truek označení, že je daný certifikát certifikátem CA.
- Nastavte na
-
certificatesstring povinné- Vložte obsah z
.pemsoubor přiřazený k certifikátu CA, formátovaný jako jeden řetězec s\na nahrazuje zalomení řádků.
- Vložte obsah z
-
namestring nepovinné- Uveďte jedinečný název pro váš certifikát CA.
-
private_keystring nepovinné- Vložte obsah z
.pemsoubor přiřazený k privátnímu klíči certifikátu, formátovaný jako jeden řetězec s\na nahrazuje zalomení řádků.
- Vložte obsah z
- Poznamenejte si ID certifikátu (
id) která se vrací v odpovědi API. - Použijte Endpoint pro nahrazení přiřazení hostname a povolte mTLS pro každý hostname, který má danou CA používat pro ověření mTLS. Použijte následující parametry:
-
hostnamespole je povinné-
Uveďte hostname, které budou k ověřování klientských certifikátů používat tuto CA.
-
-
mtls_certificate_idstring povinné-
Uveďte ID certifikátu získané v předchozím kroku.
-
- (Volitelné) Proveďte Požadavek GET a potvrďte přiřazení hostname k CA.
Po nahrání CA a přiřazení hostitelů vytvořte vlastní pravidlo, které vynutí ověřování klientského certifikátu. Můžete to udělat prostřednictvím dashboardu nebo přes API.
"expression": "(http.host in {\"<HOSTNAME_1>\" \"<HOSTNAME_2>\"} and not cf.tls_client_auth.cert_verified)",
"action": "block"Více certifikačních autorit pro jeden hostname
S jedním hostname může být spojeno více CA (spravovaných Cloudflare nebo BYOCA). U certifikátů BYOCA má přednost nejnověji nasazený certifikát.
Pokud chcete odebrat přiřazení od certifikátu spravovaného Cloudflare a používat pouze vlastní certifikáty BYOCA:
-
V dashboardu Cloudflare přejděte na Client Certificates stránce.
Přejděte na Client Certificates ↗ -
Na Hostitelé sekci v části Klientské certifikáty vydané Cloudflare, vyberte Úprava.
-
Vyberte křížek vedle hostname, který chcete odebrat.
-
Vyberte Save a potvrďte.
- Zobrazit přidružení hostname bez
mtls_certificate_id.
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:SSL and Certificates WriteSSL and Certificates Read
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/certificate_authorities/hostname_associations" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"- Zkopírujte
hostnamesvrácené rozhraním API a aktualizujte ho odebráním hostitelského názvu, který by už neměl používat certifikační autoritu spravovanou Cloudflare. - Použijte Endpoint pro nahrazení přiřazení hostname bez
mtls_certificate_idparametr k provedení akce vůči certifikační autoritě spravované Cloudflare. Prohostnamespoužijte seznam z předchozího kroku.
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:SSL and Certificates Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/certificate_authorities/hostname_associations" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"hostnames": [
"<UPDATED_HOSTNAME_ASSOCIATIONS>"
]
}'Odstranění nahrané CA
Pokud chcete odebrat CA, kterou jste dříve nahráli, musíte nejprve odebrat všechna přiřazení hostname, která má.
-
V dashboardu Cloudflare přejděte na Client Certificates stránce.
Přejděte na Client Certificates ↗ -
Vyberte BYOCA kartě.
-
Najděte certifikační autoritu (CA), kterou chcete odstranit, a klikněte na tři tečky vedle ní.
-
Nejprve odeberte všechny přiřazené hostname, pokud nějaké existují.
-
Vyberte možnost smazání a potvrďte.
- Odešlete požadavek na Endpoint pro nahrazení přiřazení hostname, s prázdným polem pro
hostnamesa uveďte ID certifikátu CA vmtls_certificate_id:
"hostnames": [],
"mtls_certificate_id": "<CERTIFICATE_ID>"- Použijte Delete mTLS certificate endpoint a odstraňte certifikát.
Zobrazit přidružení hostname k CA
-
V dashboardu Cloudflare přejděte na Client Certificates stránce.
Přejděte na Client Certificates ↗ -
Vyberte BYOCA kartě.
-
Najděte certifikační autoritu (CA), kterou chcete zkontrolovat, a klikněte na tři tečky vedle ní.
-
Vyberte Úprava hostname. Podrobnosti o certifikátu panel zobrazuje přiřazené hostname.
Použijte Endpoint pro zobrazení přidružení hostname hodnotou mtls_certificate_id parametr dotazu nastavený na ID certifikátu nahrané CA.
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:SSL and Certificates WriteSSL and Certificates Read
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/certificate_authorities/hostname_associations?mtls_certificate_id=ID_FROM_STEP_2" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"