RGJ
(Richard - Communiteq)
41
是的,HTTP-01 挑战与 Cloudflare 的“橙色云”模式配合使用。但它不适用于 HTTPS,HTTP-01 挑战仅适用于端口 80,并且:
许多运行 Cloudflare 的人将 Cloudflare 设置为自动将 HTTP 重定向到 HTTPS,这使得源服务器上的端口 80 不可用,这会阻止 HTTP-01 挑战正常工作。
所以,如果您不启用这些重定向,它就会起作用。
所以严格来说这是不正确的。
如果在 Let’s Encrypt 尝试访问源服务器之前,Cloudflare 被设置为重定向端口 80 上的流量,Let’s Encrypt 就会失败。
2 个赞
我同意,但由于 IT 安全比以往任何时候都更加重要,人们也开始更多地使用零信任产品,而 CF Tunnel 是其中的一部分,因此我们将而且应该看到此类技术的利用率有所提高,这就是我提出它的原因。
我认为你误解了 LE 的 HTTP-01 挑战的工作方式。
它会查找 certbot 或 LE 客户端的其他变体放置的 token,大多数情况下,token 会放在 Web 服务器的 .well-known 子文件夹中。
但它并不是硬编码为在端口 80 上开始请求,忽略任何 HTTP 代码重定向,并且在找不到 token 时直接失败。
HTTP-01 挑战能够遵循 HTTP 重定向(因此是 301 和 302),因此能够通过 443 和 HTTPS 读取 .well-known 文件夹。
它之所以适用于 Cloudflare Universal SSL WITH Redirect(和 Cloudflare Tunnel),是因为 Cloudflare 在端口 80 上代替 Web 服务器响应请求,将请求重定向到 443,然后 LE 可以在那里读取 token,CA 也可以颁发证书。
流程的高层图:
Certbot 启动 HTTP-01
→ 将证书请求 POST 到 CA 并将 token 放入 .well-known
→ CA 在 FQDN 端口 80 上开始 GET 请求 Token
→ CF 重定向到端口 443 并使用其 Universal SSL 证书保护请求
→ 请求被转发到 Web 服务器本身(通过 CF Tunnel 或直接连接)
→ CA 能够 GET .well-known 中的 token,因为端口 443 能够以与 HTTP 和端口 80 相同的方式呈现 token
→ CA 将 RAW 证书数据 POST 回去,Certbot 创建文件
Richie
(Richie Rich)
44
我三月份发过一个帖子,想找一些关于如何部署 Cloudflare 的最新细节或指南。
我还在找 
我使用 Cloudfront 作为 CDN,但想添加 Cloudflare 提供的 DDoS 防护。我们经常遭受攻击 
RGJ
(Richard - Communiteq)
45
我认为我对此相当了解。您说得对,它可以重定向到 HTTPS,但这取决于 Cloudflare 的设置和 Web 服务器的配置,因为最初源服务器上没有有效的证书。
是的,它们可以重定向到不同的端口,但 HTTP-01 挑战必须始终在端口 80 上启动。
请参阅 Challenge Types - Let's Encrypt
HTTP-01 挑战只能在端口 80 上完成。允许客户端指定任意端口会降低挑战的安全性,因此 ACME 标准不允许这样做。
2 个赞
我同意,我只是指出了你的不准确之处,你说它“永远”行不通。
你在这里引用的我的句子非常“邪恶”,因为它暗示了错误的讨论情况并暗示了另一种含义。我的完整句子是:
我句子的重要部分是“硬编码为在端口 80 上启动请求”和“忽略任何 HTTP 重定向”和“直接失败”的组合,因为你说:
这暗示了 HTTP-01 挑战失败的原因仅仅是重定向,但这并非事实。
另外,严格来说,重定向并不会使端口 80“不可用”。
RGJ
(Richard - Communiteq)
47
并无恶意。
它会使原始服务器的端口 80 对于所有指向该主机名的流量都变得不可用。
我不喜欢此主题中当前对话的语气,因此我将取消关注它。
我对 Cloudflare 与 Discourse 的结合的看法可以概括为“显然许多人无法正确配置它,因此总的来说,我建议不要启用它。如果您想将其用于 DDoS 防护,那么我建议仅使用非常特定的设置启用它。”
6 个赞
Jagster
(Jakke Lehtonen)
49
这可能又是一个愚蠢的问题,但因为我的受众只有芬兰人,所以我认为没有理由使用 Cloudflare,所以我只知道它的声誉。
但如果它唯一的优点是阻止 DDoS,而 DDoS 主要意味着由以下原因造成的过多请求:
那么为什么不使用 Nginx 放在 Discourse 前面并在那里阻止已知的用户代理呢?结合 Fail2ban,这可以将负载减少大约 90%(当然是斯泰森的统计数据,但无论如何也很多)。
这个讨论非常有价值。对于中国的网站管理员来说,Cloudflare 是否意味着中国用户可以正常地与外部世界交换数据。我前段时间做了一个测试。如果不使用橙色云,从中国访问国外的服务器,网络抖动会非常严重。邪恶的是,在中国运行论坛会受到严格的审查。即使我经营的是一个非政治性论坛,我也遭受了痛苦。我们必须假设网站的服务器位于中国境外。所以,如果我使用 Discourse 创建一个论坛,我必须考虑它是否可以使用 Cloudflare。
1 个赞