带Cloudflare的WordPress HTTPS灵活

时间:2018-01-07 01:50:20

标签: wordpress https cloudflare

我有一个网站,我使用Cloudflare的“灵活”SSL转换为https。这意味着我可以获得向用户显示https / secure的好处,而无需购买SSL(Cloudflare的用户是安全的,不是我的服务器的cloudflare)。

我设置了一个自动强制https的页面规则。没问题。我在一个目录下安装了WordPress,发现整个地方都存在混合内容错误。首先,由于混合内容,WordPress安装没有任何作用。所以我暂时禁用了安装WordPress的规则。

现在,如果我将WordPress数据库中的wp_options表中的siteurl和home更改为https,并启用我的强制https rul,/ wp-admin将陷入无限循环,并且不会让我做任何事情。

我做错了什么?我所拥有的就是在我网站的其余部分使用WordPress和https。

2 个答案:

答案 0 :(得分:1)

WordPress没有意识到请求是通过HTTPS从客户端发出的,因为来自CF的请求只是HTTP。

Cloudflare does provide an extra headerX-Forwarded-Proto如果请求通过HTTPS运行,则会设置为https。你可以添加

if(array_key_exists("HTTP_X_FORWARDED_PROTO", $_SERVER) && $_SERVER["HTTP_X_FORWARDED_PROTO"] == "https") {
        $_SERVER["HTTPS"] = "on";
}

到你的wp-config.php告知W​​P这个请求应该被视为通过HTTPS进入。

如果您更喜欢使用插件,Cloudflare Flexible SSL会照顾它。 Cloudflare本身的Cloudflare plugin也会处理这个问题,以及更多(缓存清除,从WP,WAF更改CF设置)。

答案 1 :(得分:0)

您应该在整个请求中使用SSL。如果您不想使用自签名路线,可以使用CF的免费原产地证书。