【问题标题】:Liferay using http and httpsLiferay 使用 http 和 https
【发布时间】:2013-11-05 05:41:59
【问题描述】:

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

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

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

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

如果我删除这两行,http 可以正常工作,但 https 不行。

我能做什么?

【问题讨论】:

    标签: ssl https liferay liferay-6


    【解决方案1】:

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

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

    在您指定更多之前,您可能需要配置主题的“虚拟路径”,这将重写所有引用您的主题的 URL。它通常用于通过网络服务器或 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 虚拟主机中转发流量。

    【讨论】:

    • 是的,我无法访问 css、字体、图像等。我使用的是 Liferay 6.1.1。如果我添加 //domain.com/myTheme 。 css 的路径是domain.com/domain.com/myTheme。如果我使用 /myTheme 也不能正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 2016-01-21
    • 2013-06-21
    • 2016-01-20
    • 2015-02-16
    • 2015-01-01
    • 1970-01-01
    相关资源
    最近更新 更多