

基于 Cloudflare mTLS 如何使用的部分教程
mutual TLS 简称 mTLS,是一种相互身份验证的方法,提供了额外的验证。关于 Cloudflare mTLS 如何使用的部分教程/踩坑
views
| comments
TL;DR
- 在 Cloudflare 的 SSL/TLS → Client Certificates 中为域名创建客户端证书,创建完成后立即保存证书和私钥;页面之后不会再显示私钥。
- 保护 /admin:在 WAF 自定义规则中使用“((not cf.tls_client_auth.cert_verified or cf.tls_client_auth.cert_revoked) and http.request.uri.path in {"/admin"})”,动作设为 Block。
- 某张客户端证书不再使用时执行 Revoke;Cloudflare 证书不能删除,且 WAF 不会默认拦截已吊销证书,所以规则必须包含 cert_revoked 判断。
什么是 mTLS?#
Cloudflare Learning: Mutual TLS
官方对 mutual TLS 的概念说明
先看概念,再回到 Cloudflare 中证书创建、吊销和 WAF 规则的处理。
mutual TLS 简称 mTLS,是一种相互身份验证的方法。 mTLS 通过验证双方都拥有正确的私有密钥,确保网络连接两端的各方都是他们声称的身份。双方 TLS 证书中的信息会提供额外验证。
证书创建#
Cloudflare mTLS Concepts
Cloudflare 官方 mTLS 证书说明
Cloudflare 默认托管 CA 的客户端证书有配额限制,创建前建议先规划用途。
每个域名最多包含 100 个客户端证书,目前不清楚过期后是否占位。
证书吊销#
在 Cloudflare 中,我们一般使用其作为机构签发的证书,而证书只能执行吊销,不能删除。
Revoke a client certificate
Cloudflare 客户端证书吊销说明
使用 Cloudflare Managed CA 生成的客户端证书无法永久删除,只能吊销。
cf.tls_client_auth.cert_revoked = truetxt((not cf.tls_client_auth.cert_verified or cf.tls_client_auth.cert_revoked) and http.request.uri.path in {"/admin"})txt