Apache,仅在特定文件类型和 HTTP 上重置连接

Apache, connection reset on specific filetype and HTTP only

我无法访问我的客户服务器(生产)上的特定文件类型。

这是 cURL 的结果:

curl "http://domain.tld/fonts/glyphicons-halflings-regular.eot" -I
HTTP/1.1 200 OK
Date: Tue, 28 Jul 2015 12:06:23 GMT
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Tue, 19 May 2015 15:32:20 GMT
ETag: "14023-4f42-516710421e900"
Accept-Ranges: bytes
Content-Length: 20290
Connection: close
Content-Type: application/vnd.ms-fontobject

文件在这里。 但是当我尝试获取文件内容时:

curl "http://domain.tld/fonts/glyphicons-halflings-regular.eot"
curl: (56) Recv failure: Connection was reset

我(还)不能访问客户服务器,所以我想猜测这里出了什么问题。

目前的工作:

curl "https://domain.tld/fonts/glyphicons-halflings-regular.eot" --insecure

它在 HTTPS 中工作,即使没有证书(这就是我使用 --insecure 的原因)。我得到了文件内容。

客户从本地URL.

访问文件就可以得到文件

我可以访问服务器上的所有其他文件,甚至是字体目录中的文件。 我无法访问所有 .eot 文件,即使在其他目录中也是如此。

所以我认为这是这两个问题之一: - Apache 配置/.htaccess 问题。 - 代理/反向代理问题。

你怎么看? 我应该做什么样的其他测试? 我应该向客户询问哪些信息?

谢谢。

好的,这是原因: 客户防火墙阻止 .eot 文件内容。

A vulnerability in Embedded Web Fonts Could Allow Remote Code Execution.

http://www.checkpoint.com/defense/advisories/public/2006/cpai-2006-010.html

由于 .eot 文件由 IE8 及更低版本使用,并且客户不需要这些浏览器版本,因此我只是删除了所有对 .eot 文件的引用。

另一个解决方案是要求客户防火墙管理员添加一个例外,因为严重性很低。