ssl - Liferay 使用 http 和 https

标签 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 就不行。

我能做什么?

最佳答案

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

您在主题方面遇到的具体问题是什么? (通过 http 的图像/css?)您使用的是哪个版本的 Liferay?

在指定更多之前,您可能需要配置主题的“虚拟路径”,这将重写所有引用您主题的 URL。它通常用于通过网络服务器或 cdn 提供静态资源,但它适用于任何类型的 URL。简单地使用协议(protocol)相关的 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 省略了协议(protocol)部分,http:https:,因此浏览器将使用与加载整个页面相同的协议(protocol)。

编辑:更正了 xml。将调查主题中的协议(protocol)相关 URL 是否存在问题。

编辑 2:有点奇怪。似乎,虚拟路径不是这样工作的,但我记得它早些时候是这样的。您将 domain.com 添加为 cdn.host.http 还是 cdn.host.https? (这将被串联)

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

关于ssl - Liferay 使用 http 和 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19751185/

相关文章:

popup - 如何关闭 Liferay 中的弹出窗口?

magento - 在管理员中启用使用安全 URL,magento 无法正确重定向

android - 为什么有时会出现这个错误

java - 如何创建持久的 https 连接

apache - SSL认证apache

spring - 元素 <cache> 不允许属性 "maxBytesLocalDisk"

liferay - 我想从速度模板访问 WebContent-Title

ssl - Heroku SSL 证书 : change default email address

c# - WebRequest\HttpClient C# 中的客户端证书身份验证失败

ssl - Amazon AWS 无法验证解冻证书链