跳转到内容
搜索文档

在应用安全 (Application Security) 中使用 mTLS

最后更新 查看 MarkdownAgent 设置

1. 启用 mTLS

  1. 转到 Cloudflare 仪表板,选择你的账户和域名。

  2. 导航至 SSL/TLS > 客户端证书,在 Hosts(主机) 部分,选择 Edit(编辑) 以添加要为其启用 mTLS 的主机名。

    示例主机:mtls-test.example.com

  3. 选择 Add certificate(添加证书)。Cloudflare 托管的 CA 为默认 Certificate authority(证书颁发机构)

  4. 填写所需字段。你可以选择以下选项之一:

  • 使用 Cloudflare 生成私钥(通常称为私有证书)和证书签名请求 (CSR)(其中包含公共证书)。
  • 使用你自己的私钥和 CSR,这还允许你标记客户端证书

要生成并使用你自己的 CSR,可以运行类似以下的命令:

openssl req -new -newkey rsa:2048 -nodes -keyout client1.key -out client1.csr -subj '/C=GB/ST=London/L=London/O=Organization/CN=CommonName'

或者使用类似 GitHub 上的脚本。

切记复制创建证书时显示的数值,因为在创建后这些数值将无法再查看。

2. 安装客户端证书

为了让客户端能够使用你创建的客户端证书,该证书必须安装在你打算使用的设备上。你需要将其放置在目标 API / 主机名对应的进程 / 脚本相同的目录下。

我们通常建议每台设备使用一个客户端证书。配置你的系统以实际使用公钥和私钥证书尤为重要。

例如,在 MacBook 笔记本电脑上将两个证书添加到钥匙串 (Keychain)

另一个示例是生成 PKCS12 (P12) 证书 文件,然后将其添加到你的浏览器

openssl pkcs12 -export -out certificate.p12 -inkey private-cert.pem -in cert.pem

使用上一步中的数值。

使用 cURL 命令的示例:

curl -v --cert cert.pem --key private-cert.pem <HOSTNAME>

使用上一步中的数值。

3. 在 WAF 中验证客户端证书

mTLS 会在 Cloudflare WAF 阶段 被验证和检查。这是通过使用动态字段创建 WAF 自定义规则 来完成的。

所有客户端证书详细信息均可在 Cloudflare 规则集引擎cf.tls_* 字段中找到。

带有操作块的 WAF 自定义规则示例:

验证客户端证书步骤期间 Cloudflare 仪表板中带有操作块的 WAF 自定义规则示例

演示

在公钥和私钥证书位于同一目录的情况下,使用以下 cURL 命令,我们将获得访问权限:

curl -I --cert cert.pem --key private-cert.pem https://mtls-test.example.com/mtls-test
HTTP/2 200
server: cloudflare

如果不带证书,终端将显示以下内容:

curl -I https://mtls-test.example.com/mtls-test
HTTP/2 403
server: cloudflare

这篇文档对您有帮助吗?