在本实现指南中,我们将重点关注面向代理主机名的 HTTP/S 请求的 L7 / 应用层安全性,包括客户端与 Cloudflare 之间的首次连接。
一些常见的 mTLS 使用场景包括:
- 通过验证 TLS/SSL 握手期间提供的客户端证书,保护并验证合法的 API 流量。
- 通过验证 IoT 设备在 TLS/SSL 握手期间提供的客户端证书,检查其身份。
在 Cloudflare 上使用 mTLS 主要有两种方式:使用应用安全产品(可选地包括 API Shield)或使用 Cloudflare Access。以下是它们差异的非详尽对比概览表:
| 功能 | 应用安全 (客户端证书 + WAF) | Cloudflare Access (mTLS) |
|---|---|---|
| 主要用途 | 外部身份验证(即 API) | 内部身份验证(即 员工) |
| 可用性 | 默认情况下,每个区域 (Zone) 免费包含 100 个客户端证书。如需更多证书或 API Shield 功能,请联系你的账户团队。 | 仅限 Zero Trust Enterprise 版功能。 |
| 证书颁发机构 (CA) | Cloudflare 托管或客户上传(BYO CA)。最多支持 5 个客户上传的 CA 的软性限制。 | 仅限客户上传(BYO CA)。最多支持 50 个 CA 的软性限制。 |
| 客户端证书详细信息 | 通过 Cloudflare API、Cloudflare Workers 和 托管转换 (Managed Transforms) 转发到源站服务器。 | 通过 Cloudflare API、Cloudflare Workers 和 托管转换 (Managed Transforms) 转发到源站服务器。客户端证书请求头和 Cf-Access-Jwt-Assertion JWT 请求头可以转发到源站服务器。 |
| 客户端证书吊销 | 使用 WAF 自定义规则检查 cf.tls_client_auth.cert_revoked,这仅适用于 Cloudflare 托管的 CA。 对于 BYO CA,其方法与 Cloudflare Access 相同。 |
生成证书吊销列表 (CRL),并在 Cloudflare Worker 中强制执行吊销。 |