使用WordPress HTTPS插件的SSL重定向循环

时间:2012-03-15 作者:Injeniero Barsa

我在一个NginX服务器中使用Wordpress代理一个为页面提供服务的apache服务器。最近,我们希望至少在管理部分强制使用SSL,因此我们安装了Wordpress HTTPS 插件。NginX中的服务器部分已正确配置,但当我激活“Force SSL for admin”选项时,我会陷入重定向循环。

我不认为这是饼干问题。如果你需要更多信息,我会传给你。

3 个回复
SO网友:jptsetme

我最近遇到了一个类似的问题,所以我将为搜索此问题的人提供一些额外的信息。

当您尝试为站点管理员强制SSL时,应采取的第一步是the directions in the codex . 这意味着定义FORCE_SSL_ADMIN wp配置中的选项。php文件the warning in the codex 此编辑需要高于/* That\'s all, stop editing! Happy blogging. */ 线路is_ssl() 函数正在返回false. 例如,您可能正在执行SSL卸载的反向代理后面运行。如果是这样,那么您的用户输入https://yourwordpresssite, 但是SSL卸载程序处理解密,当您的服务器收到请求时,请求不再是SSL,您的服务器会看到http://yourwordpresssite. 如果您被困在这里,假设您的反向代理配置正确,那么codex也有很好的建议。请参见此处的说明:(http://codex.wordpress.org/Administration_Over_SSL#Using_a_Reverse_Proxy).如果仍然不起作用,则您的反向代理可能没有设置HTTP_X_FORWARDED_PROTO 标题。不幸的是,这些东西都不是标准化的,并且有多种方法表明SSL卸载已经发生。我们的负载平衡器(Citrix Netscaler)使用的方法是使用Microsoft创建的标题Front-End-Https. 您可以在此处将此标题视为wikipedia上列出的常见非标准响应标题之一:(http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Common_non-标准\\u响应\\u标题)。请注意,当服务器看到此标头时,它将如下所示HTTP_FRONT_END_HTTPS. 还请注意,Netscaler默认情况下不发送此标头——您必须将其配置为添加标头。这是有记录的here, 还有一个很好的视频演示here.

最后,因为我们的整个网站都只使用HTTPS,所以我选择使用wordpress HTTPS插件,它可以很好地处理边缘情况(就像其他wordpress插件一样,它具有硬编码的http://URL,会在您的安全页面上发出警告)。我修补了插件以识别HTTP_FRONT_END_HTTPS 我正在向作者提交一个补丁,所以在某种程度上,这个插件应该支持这个补丁。

祝你好运

SO网友:kaiser

检查is_ssl() 并不是WP中最好的。你can take this mu-plugin 以获得更好的检查。然后simply stick tight to the recommendations of the codex.

广告的Wordpress HTTPS插件)我不会指望这个插件太多,当我看主干。。。

Mu-Plugins

<支持>MU-Plugins in Codex

SO网友:Rain Farmer

我通过进入站点的CDN(Cloudflare)并将SSL模式设置为“full”,为自己解决了这个问题

以前它是“灵活”的,我想这是导致或允许混合http和https请求的原因。

尽管我将CDN设置为“开发人员”模式(我认为这阻止了CDN影响站点),但在解决此问题时,SSL设置仍然会产生影响。

结束

相关推荐

Communicate between plugins

我已经创建了两个WordPress插件。如果两个插件都安装了,那么这两个插件之间就可以进行一些有益的合作。那么我的问题是:让他们合作的最佳方式是什么?如何检测某个插件是否已启用?如何传输信息?我想我可以用globals,但有更好的方法吗?