Liferay使用http和https

时间:2013-11-03 08:39:16

标签: ssl https liferay liferay-6

我正在尝试将Liferay用于http和https

如果我包含在portal-ext.properties中:

company.security.auth.requires.https=true
web.server.protocol=https

使用https可以正常工作,但在http中显示的主题不正确,因为正在尝试加载https://domain.com/theme

如果我删除这两行可以正常使用http而不适用于https。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

恕我直言混合模式,例如提供http以及https永远不会为您提供您期望的内容:您希望通过https获得安全性,但是您总是冒着泄露会话信息的风险,例如容易受到会话劫持攻击(ala Firesheep)。如果你为安全做https,我的实际建议是https only。请继续阅读,如果这不是您的选择,但是当您发现信息泄露时不要抱怨(这不依赖于Liferay,而是依赖于任何基于Web的环境)

您对主题的确切问题是什么? (图像/ css通过http?)你使用的是哪个版本的Liferay?

在指定更多内容之前,您可能希望配置主题的“虚拟路径”,这将重写所有引用您主题的URL。它通常用于通过Web服务器或cdn提供静态资源,但它适用于任何类型的URL。简单地使用协议相对URL应该可行(我喜欢这个主要是未知的http功能):

将此添加到主题的liferay-look-and-feel.xml:

 <look-and-feel>
    <theme id="my" name="My Theme">
       <virtual-path>//domain.com/myTheme</virtual-path>
    </theme>
 </look-and-feel>

请注意,该URL省略了协议部分http:https:,因此浏览器将使用与加载整个页面相同的协议。

编辑:更正了xml。将调查主题中协议相对URL是否存在问题。

编辑2:有点奇怪。看起来,虚拟路径不能像这样工作,但我记得它早先做过。您是否将domain.com添加为cdn.host.http或cdn.host.https? (这将连接在一起)

关于相关内容,请检查您是否在应用服务器前运行Apache。在这种情况下,您可以为门户转发一些流量(例如,在虚拟主机中转发http),但不转发https虚拟主机中的流量。