for*_*own 7 ssl apache-2.2 internet-explorer-9
目前,我的 php 应用程序使用 Apache 2.2.3 和 CentOS 5.4(运行在 5.3.7 上的 php),并且应用程序在 HTTPS 上运行并使用 Root CA 证书。
问题是我们在使用 IE9(仅限 IE9)时遇到了一些奇怪的问题。当IE9浏览器向我们的服务器提交HTTPS请求时,有时没有HTTPS响应。我注意到的是 IE9 会刷新页面。更具体地说,提到的页面是一个登录页面。所以当我输入用户名和密码并提交表单时,但没有响应并且 IE9 似乎再次重新加载相同的登录页面。(用户名和密码为空)
从应用程序级别进行跟踪时,我确实注意到我收到了用户名和密码,并且应用程序没有错误地结束。
主要的头痛是不能每次都重现。有时我们可以毫无问题地登录,但有时会出现上述问题。
现在我们公司有网络团队,开发人员等团队。我们的 apache 在负载均衡器下运行。网络人员声称他们从不更改任何设置,唯一的更改是我们的应用程序。但从开发人员的角度来看,这些变化与登录过程无关。
从我的角度来看,似乎一旦用户单击提交,应用程序(apache)就通过发送 HTML(HTTPS 响应)来完成它所做的事情,但是 HTML 不知何故奇迹般地在网络中消失了。我确实怀疑与连接保持活动有关吗?可能 IE9 浏览器代理处理它的方式不同,不知何故它认为连接失败并重新加载页面以重试?
但无论如何,我注意到 Apache 中 SSL conncetion 的以下设置:
SetEnvIf User-Agent ". MSIE. " \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0
不确定我们如何设置以排除 IE9 及更高版本?当我进行搜索时,上述设置是为了解决 IE 与 Apache 连接时的一些长期存在的问题。但是由于IE9是全新的,可能问题已经解决了,我们需要更新设置吗?
希望有人可以对此有所了解..
最有可能的是服务器/网络设置在某个地方出现问题,并且不是由任何 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 协商,从而失败,因为负载均衡器在访问者的生命周期内不会将会话保留在同一服务器上。
如果您的应用程序是内部应用程序(在内联网上),您的负载均衡器会随机跳转您的 IP 地址,并且 SSL 需要每个连接的 IP 地址都相同。
如果它不在内部网上,情况可能也是如此,我不知道您的网络是如何设置的,但您应该首先检查一下。禁用负载均衡器并查看问题是否存在。并且一定要保持存活。
http://httpd.apache.org/docs/2.2/mod/core.html#keepalive
我还会检查您是否有反向 DNS 设置。如果它指向负载均衡器或负载均衡器后面的服务器或其他什么。
测试您的连接并分析您的标头,如果外部使用redbot.org或webpagetest.org等来检查发送了哪些标头。你也可以使用像fiddler这样的东西
归档时间: |
|
查看次数: |
6233 次 |
最近记录: |