IE9和Apache SSL nokeepalive设置


8

目前,我正在将Apache 2.2.3和CentOS 5.4用于我的PHP应用程序(PHP在5.3.7上运行),并且该应用程序在HTTPS上运行并且具有Root CA证书。

问题是我们一直在使用IE9(仅IE9)遇到一些奇怪的问题。IE9浏览器向我们的服务器提交HTTPS请求时,有时没有HTTPS响应。我注意到的是IE9将刷新页面。更具体地说,提到的页面是登录页面。因此,当我输入用户名和密码并提交表单,但没有响应时,IE9似乎又重新加载了相同的登录页面。(使用空白的用户名和密码)

从应用程序级别进行跟踪时,我确实注意到我已经收到了用户名和密码,并且该应用程序无任何错误地结束了。

最让人头疼的是它不能每次都被复制。有时我们可以登录而没有任何问题,但是有时它会遇到上述问题。

现在,我们公司拥有网络团队,开发人员和其他团队。我们的Apache在负载均衡器下运行。网络人员声称他们从不更改任何设置,唯一的更改是我们的应用程序。但是从开发人员的角度来看,更改与登录过程无关。

从我的角度来看,好像用户单击了提交,应用程序(apache)就通过发送HTML(HTTPS响应)来完成它的工作,但是HTML在网络中以某种方式消失了。我是否怀疑与连接保持活动有关?可能是IE9浏览器代理以不同的方式处理它,并且它以某种方式认为连接失败并重新加载页面以进行重试?

但是无论如何,我已经注意到Apache中用于SSL连接的以下设置:

SetEnvIf User-Agent“ 。MSIE ” \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0强制响应-1.0

不确定如何设置排除IE9及更高版本的方式?当我进行搜索时,以上设置是为了解决IE与Apache连接时的一些长期存在的问题。但是由于IE9相当新,所以问题可能已经解决,我们需要更新设置吗?

希望有人可以对此有所启发。



blogs.msdn.com/b/ieinternals/archive/2011/03/26/…找到了此链接,建议对BrowserMatch“。* MSIE [2-5] \ .. *” \ nokeepalive ssl-unclean进行更改-shutdown \ downgrade-1.0 force-response-1.0,但需要时间进行测试。同时不知道是否有人也遇到类似的问题,他们做了什么来解决这个问题..
forestclown

是什么让您怀疑保持活力与之相关?您可以对网络流量执行捕获以确认吗?
Shane Madden

只是一个大胆的猜测,因为它仅发生在IE9中,而对于当前的apache设置,这是我注意到的唯一专门针对IE进行的设置...
Forestclown 2011年

你有解决过这个吗?解决方案是什么?

Answers:


3

服务器/网络设置很可能是某个地方存在问题,而不是由任何IE9怪癖引起的。

首先,摆脱古老的IE6之前的配置:SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0并尝试完全不运行(以任何形式)。除非您需要支持IE5,否则我怀疑您会这样做,那么将正则表达式更改为MSIE [2-5]

负载均衡器并且没有保持活动状态可能是问题所在。我会对负载均衡器非常怀疑,并首先检查到底发生了什么。

负载平衡器通常会在两个或多个IP地址之间“平衡负载”(此时内部还是外部都没有关系)。

然后,客户端计算机/浏览器对请求之间的连接没有保持活动状态,则必须为每个请求执行SSL协商。将其与缓慢和低超时设置结合在一起,我们会遇到SSL证书不匹配的问题,并且由于严格的安全设置,IE可能会保释。我没有确切地调查IE9是否仅具有此特征。我怀疑其他浏览器也会这样做,并且处理方式有所不同。

如果您使用的是SSL,则应启用KeepAlive,因为它可以使站点更快,并且不必一遍又一遍地通过SSL协商,因此失败了,因为负载平衡器在访问者的生存期内未将会话保持在同一服务器上。

如果您的应用程序是内部的(在Intranet上),则您的负载均衡器会在您的IP地址上随机跳转,并且SSL要求每个连接的IP地址都相同。

如果不在Intranet上,则可能同样如此,我不知道您的网络是如何设置的,但您应该首先检查一下。禁用负载均衡器,看看是否存在问题。并坚持下去。

http://httpd.apache.org/docs/2.2/mod/core.html#keepalive

我还将检查您是否获得了反向DNS设置。如果它指向负载均衡器或负载均衡器后面的服务器,或者不是。

测试连接并分析标头,如果外部使用redbot.orgwebpagetest.org之类的东西检查发送了哪些标头。你也可以用提琴手之类的东西


1
对于IE> = 6仍然需要ssl- unclean
user2299634 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.