IIS自动重定向导致NetScaler SSL Offload错误
luyued 发布于 2011-03-01 22:36 浏览 N 次今天在测试NetScaler的SSL Offload的时候,发现有些页面需要修改后台服务器的配置才能实现和NetScaler的完美兼容。
NetScaler SSL Offload 的原理很简单,就是位于客户端和服务器之间的透明代理,处理两者之间的TCP流量。
NS加密与客户端之间的通信,解密后转发到后台服务器,来实现透明代理,对于其他TCP通信流量来说还好,但是对于HTTP协议的处理,可能会由于HTTP的一些特性,导致这种流量的失密和服务无法访问,因为SSL Offload只能加密与客户单的HTTP请求,但是如果URI指向的地址是HTTP,而不是页面请求时候的HTTPS,那么将导致这些资源无法走HTTPS协议,一种导致无法访问该资源,另外一种,将导致这些资源暴漏在非加密状态。
所以对于这种网站,需要再开发的时候就在页面中使用相对路径,而不能使用硬编码地址,否则在使用SSL Offload的时候,比较麻烦。(使用硬编码可以使用NS来重定向和修改,但是所有流量都需要分析,无疑会加重NS的负载和效率,所以不推荐。)
上面我提到,使用相对路径能解决由页面内资源(URI/URL)导致的无法访问 ,但是在使用相对路径的时候,还是可能会有问题。今天在使用WebInterface5.4站点作为后台站点 来测试SSL Offload的时候,发现了这样的问题:
在 IE地址栏输入https://www.xenme.com以后,会自动跳转到citrix/desktopweb(注意,这个地址后面没有斜杠,而且协议是http,而不是https)后,显示该页面无法访问,手动在最后补全斜杠后,页面访问正常。
在上图中我们可以看到页面在跳转到http://www.xenme.com/citrix/desktopweb/的时候出错了。
这个出错的原因就是因为在最开始跳转到图中2标示的时候,IIS检测到结尾没有斜杠(/),IIS会自动发送301状态到客户端,并指定浏览器需要跳转到图中2.2标示的地址,从而导致客户端直接访问了基于http协议的页面地址,NetScaler肯定不会响应页面,所以导致了客户端显示无法访问。
很明显,NetScaler是直接转发了该重定向页面的header到客户端,导致无法正常跳转过去。
解决方法很简单,直接修改WebInterface页面来直接跳转到citrix/desktopweb/目录,而不是citrix/desktopweb,然后由IIS用重定向来实现跳转。
上面的方法对WebInterface来说足够了,但是如果是一个非常大的站点来说,要修改所有的重定向规则,是很复杂的,NetScaler支持URL的Rewrite功能,可以用来对这些URI资源进行重定向和修改来实现该功能,总得来说,Rewrite是个非常强大的功能,但是在大流量情况下,同时进行Rewrite和SSL Offload的压力就可想而知了。
- 06-15· 2011.03.16中山
- 06-15· [转载]段琪桂不构成“犯罪
- 06-15· 雅思VIP8人班
- 06-15· 广州市地下铁道总公司D
- 06-12· 那些类似口袋的玩意
- 06-12· 伸个懒腰腰
- 06-07· [原创]精明购物挑战千年极
- 06-05· 桂林中旅新增路线“桂林
- 06-05· 怎样能增肥 2011年1月21日芒
- 06-05· [转载]【日本旅游】日本游
- 06-05· 广州至纽约 芝加哥 华盛顿
- 06-05· [热门]记三亚…仅供娱乐
- 06-05· Lucene原理及使用总结 | 用
- 06-04· 国际漫画大赛征稿(修改
- 06-04· 泰國之旅第一日~
- 06-04· 泰之旅day4
- 06-04· 泰國之旅 Farica 篇
- 06-03· 哈 曼丁的故事3
- 06-03· 奥巴马:没有总统相?“
- 05-31· 5-31筹款物资汇总披露(一