HTTPS问题 - 运行Java应用程序时,某些用户获得SEC7111

时间:2014-07-02 16:37:05

标签: java apache jsp tomcat https

我们已经建立了一个带有安全证书(由VeriSign签名)的网站,该网站适用于大多数用户,但是公司X中的所有用户都无法无误地访问它。访问该网站时,会向用户显示一个看似完全没有样式的HTML页面(即CSS没有加载),浏览器控制台会报告以下内容:

SEC7111: HTTPS security is compromised by http://<ipaddress>:15871/cgi-bin/blockpage.cgi?ws-session=<a session id>

这不会影响其他公司的任何其他用户(到目前为止!)但我们决心找出原因。

我认为该错误表明正在尝试从我们的HTTPS站点发出HTTP请求,但我搜索了代码库并且无法找到任何内容。

我们的Java Web应用程序在Apache Tomcat(版本7)上运行并使用JSP。所有资产均以下列方式引用:

JSP页面的顶部:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set value="${pageContext.request.contextPath}" var="baseUrl" />

参考资产:

<link rel="stylesheet" href="${baseUrl}/assets/css/bootstrap.css"/>

我们确实将c:set值更改为硬编码到URL但没有区别。用户仍然获得了SEC7111。为清楚起见,以下是我们将c:set value更改为:

的内容
<c:set value="https://thewebsite" var="baseUrl" />

在使用Firebug的我的计算机上,我可以看到对网站资产的所有请求都是通过https进行的,没有http调用。

我们的Apache Tomcat前面还有一台Apache服务器将所有http请求重定向到https:

Redirect permanent / https://<our website>/

在虚拟主机*:433部分

ProxyPass        / http://local host:8295/
ProxyPassReverse / http://local host:8295/

请注意,上面的ProxyPass和ProxyPassReverse确实是HTTP!这(在我看来)是故意的。一旦与站点建立连接(https://thewebsite.org),则后面(到localhost)的调用可以是http。我认为这是合法的。

如果有人能够指出我做错了什么或建议任何途径我应该看看,请联系!谢谢!

1 个答案:

答案 0 :(得分:1)

可能的答案:

公司x正在使用名为Websense的工具。 Websense出于某种原因并不喜欢我们的网站。我们是&#34;未分类&#34;通过Websense。这意味着什么,或者我们如何摆脱困境&#34;未分类&#34;我不知道,但现在这是X公司和Websense之间的问题。

(如果有人知道我在创建证书时做错了什么,那么我们就是&#34;未分类&#34;那么请随时告诉我们)