跳转到内容
搜索文档

客户端证书 (mTLS)

最后更新 查看 MarkdownAgent 设置

标准 TLS 向客户端验证服务器的身份。双向 TLS (mTLS) 增加了第二层检查:服务器还使用客户端证书验证客户端的身份。这使您能够限制仅向呈现有效证书的设备或服务授予访问权限。

使用 Cloudflare 的公钥基础设施 (PKI) 创建客户端证书,或自带 CA (BYOCA)

Mutual TLS (mTLS) authentication is a common security practice that uses client certificates to ensure traffic between client and server is bidirectionally secure and trusted. mTLS also allows requests that do not authenticate via an identity provider — such as Internet-of-things (IoT) devices — to demonstrate they can reach a given resource.


工作原理

当主机名启用了 mTLS 时,Cloudflare 要求连接的客户端呈现有效证书。客户端证书安装在应被授予访问权限的设备或服务上。

Cloudflare 根据账户级别设置的 CA 验证客户端证书。由于验证在账户级别进行,同一证书可在您账户下的多个域名中使用,只要每个主机名都启用了 mTLS(例如 host.example.comname.example.netsecure.anotherdomain.test)。

账户级别的 CA 可以是:

Cloudflare 然后将验证结果存储在名为 cf.tls_client_auth.cert_verified 的字段中:

  • 成功cf.tls_client_auth.cert_verifiedtrue,您可以在特定 mTLS 字段中找到客户端证书详情。
  • 失败cf.tls_client_auth.cert_verifiedfalse

用例

mTLS 支持多种实现模式,具体取决于您要保护的内容。更广泛的概述,请参阅 mTLS 学习路径

除 mTLS Workers 绑定外,上述任何实现都可以使用您自己的 CA 而不是 Cloudflare 托管 CA。请参阅自带 CA (Bring your own CA)

mTLS 与 Workers

当需要 Worker 向外部服务呈现客户端证书时,使用 mTLS Workers 绑定。要验证从客户端到 Worker 的请求,请参阅常规的 mTLS 应用程序安全 实现。

flowchart LR
        accTitle: mTLS from client to worker versus mTLS from worker to external service
        accDescr: Diagram showing two different implementations that can be considered for mTLS with Cloudflare Workers.
        A[Client] <--App security mTLS--> B((Cloudflare))<--mTLS worker binding--> C[(External service)]

更多资源

这篇文档对您有帮助吗?