cloudflare 如何在没有私钥的情况下读取加密请求?

信息安全 tls cdn 云耀斑
2021-08-30 01:44:41

我们的生产服务器中有 Cloudflare,加密级别是完整的,不灵活。 该网页说 Cloudflare 可以解密请求。但是我们没有将服务器的私钥提供给 cloudflare。这怎么可能?这是否意味着任何人都可以在没有目标私钥的情况下解密请求?

2个回答

使用 cloudflare 的一种方法是将域的 NS 记录设置为 cloudflare 的名称服务器,然后再解析www.mydomain.com为它们的 IP 地址。这意味着,当您www.mydomain.com使用 cloudflare进行设置时,它会访问他们的一台服务器。该域的 SSL 证书不是您的,而是他们的。检查您网站的 SSL 证书,您会看到它是颁发给的,something.cloudflaressl.com而您的域只是Subject Alternative name.

“完整 SSL”设置仅意味着到 cloudflare 的所有客户端流量都通过 SSL(使用他们的证书),并且 cloudflare 和您的实际服务器之间的所有流量也通过 SSL(使用与您的服务器名称匹配的证书)。

如您所见,根据定义,cloudflare 会解密您网站的所有流量,但它可以这样做,因为从技术上讲,cloudflare就是您的网站。您的实际服务器只是 cloudflare 在没有缓存数据时从中获取数据的东西。如果您考虑一下,它还会如何缓存任何内容?

您可以通过多种不同的方式配置 cloudflare:

  1. 您可以将 cloudflare 设置为您的 DNS 提供商,大多数 CA 将 DNS 控制证明视为域控制的有效证明。这允许 cloudflare 使用您的域名创建有效的 DV 证书。
  2. 您可以给 cloudflare 您的私钥,这允许您使用 OV 或 EV 证书。
  3. 在更高级别的计划中,您可以使用无密钥 SSL,这允许您在不交出密钥的情况下使用 OV 和 EV。

在所有情况下,是的,cloudflare 可以拦截和修改通过它的任何数据。这是必要的,因为 Cloudflare 的主要工作方式是作为边缘缓存层、Web 应用程序防火墙和验证码。所有这些功能都要求他们能够看到请求的内容和/或修改您的页面。

您可以通过多种方式限制 CDN 提供商(如 cloudflare)的权限,如果您使用 cloudflare 提供静态文件,您可以直接提供主站点并使用子资源完整性或添加自己的加密以防止修改通过提供的文件云耀斑。如果您使用本地应用程序作为您的客户端(例如 Android 应用程序),您可以固定您网站的证书,或者您可能需要 OV 或 EV 证书。

如果您通过 cloudflare 运行您的主域,那么 cloudflare 实际上与您的托管服务提供商一样强大。