我们已经建立了一个带有安全证书(由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。我认为这是合法的。
如果有人能够指出我做错了什么或建议任何途径我应该看看,请联系!谢谢!
答案 0 :(得分:1)
可能的答案:
公司x正在使用名为Websense的工具。 Websense出于某种原因并不喜欢我们的网站。我们是&#34;未分类&#34;通过Websense。这意味着什么,或者我们如何摆脱困境&#34;未分类&#34;我不知道,但现在这是X公司和Websense之间的问题。
(如果有人知道我在创建证书时做错了什么,那么我们就是&#34;未分类&#34;那么请随时告诉我们)