【问题标题】:Is it safe to use this code with WordPress to get cloudflare SSL working将此代码与 WordPress 一起使用以使 cloudflare SSL 工作是否安全
【发布时间】:2021-10-15 11:29:56
【问题描述】:

我想问一下这段代码 sn-p 在 WordPress 中使用是否安全。因为我是新手,他们在这里有很多专家。所以我想问问他们关于这段代码的事情。

if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO'] ) { $_SERVER['HTTPS'] = 'on'; }

此代码解决了使用 cloudflare SSL 证书时的重定向循环。

许多论坛和帖子我都建议使用类似的代码,但有人说$_SERVER['HTTPS'] = 'on'; 使用此代码不是一个好习惯。希望有人指导

【问题讨论】:

    标签: wordpress ssl cloudflare


    【解决方案1】:

    使用 Cloudflare SSL,您可以设置 few different options 来设置它如何连接到您的源服务器。一种选择是仅在 Cloudflare 和您的用户之间使用 HTTPS,然后在 Cloudflare 和您的 Origin 之间使用纯文本/非 HTTPS。这听起来像您正在使用的选项?

    当您的源服务器尝试将(它正确查看的内容)作为非 HTTPS 请求重定向到 HTTPS 时,就会出现重定向循环问题。但是,您的用户已经在 HTTPS URL 上。除了通过“HTTP_X_FORWARDED_PROTO”标头外,您的源服务器无法看到此信息。

    通过使用您粘贴的代码 sn-p,它实质上隐藏了 Cloudflare -> Origin 连接仅是 HTTP 的事实,而使用 User -> Cloudflare 连接是 HTTPS 的事实。这只是等式的一半。

    修复被认为是一种不好的做法的原因是,您真正在做的是掩盖一个可以解决的问题(允许 Cloudflare -> Origin 之间的 HTTPS)。

    【讨论】:

    • 你能告诉我如何在 cloudflare 和 origin 之间启用 https,我正在使用 cloudflare argo 隧道
    • 只要您指向带有 Argo 的源服务器的端口 443 (HTTPS),它就应该是 HTTPS。
    • 我的 nginx 服务器没有响应,并在端口 443 上出现 404 错误。通过域连接时也可以正常工作
    • 我想说那是这里的根本问题。如果您的服务在 443 上没有正确响应,则意味着 HTTPS 将无法访问。因此,如果您仅在端口 80 上使用该服务,那就可以解释为什么来自 Cloudflare -> Origin 的连接是纯文本/HTTP。我认为这超出了这个问题的范围。
    猜你喜欢
    • 2018-10-28
    • 2021-05-26
    • 2012-07-26
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多