利用SSL-Explorer配置反向代理
SSL-Explorer是一个用java开发的、并且是开源的SSL VPN解决方案,从2007年我就一直关注它的发展,接触到最早的版本是0.2.12,后来陆续又发布0.2.13、0.2.15,直到1.0.0_RC17正式版出来以后,就转为商业了,名字也改成叫adito,界面主要使用ajax技术开发。
?
SSL-Explorer的其中一个主要功能Web Forward有以下三种类型:
Tunneled Web Forward 隧道转发(适合静态网站)Replacement Proxy Web Forward 替换代理(适合含有javascript和绝对路径的web应用)Reverse Proxy Web Forward 反向代理(适合含有相对路径且比替换代理更复杂的web应用)以前在使用SSL-Explorer配置web应用的时候一直使用第一种隧道转发的方式,替换代理比较少用到,现在需要用到反向代理,所以特意研究了一下。SSL-Explorer对反向代理又分为2种,Path-Based Reverse Proxy(基于路径的反向代理)和Host-Based Reverse Proxy(基于主机的反向代理),能够分别创建这两种方式的web应用,很方便。下面以0.2.15为例,介绍如何配置反向代理的web应用。
?
Create Path-Based Reverse Proxy为了测试需要,临时使用hfs在虚拟机中搭建了一个web应用,虚拟机的IP(172.7.7.164),创建2个目录,文件夹的名字分别为new和file。
?
name : path-based
description : path-based
Destination URL : http://172.7.7.164/new
Paths :
???? /new
???? /file
Encoding : Default
Authentication Type : None
Policies : Everyone(根据实际情况选择)
?
测试结果:资源可以访问,但是页面样式和图片没有显示出来(后来发现是hfs的问题,更换为另一个web应用就能显示图片),访问地址自动转向到https://127.0.0.1:2443/new/。如果找不到网页,尝试在URL后面加一个斜线http://172.7.7.164/new/,一般就没问题了。
?
Create Host-Based Reverse Proxy同样使用hfs的web应用,但是此方法需要DNS服务器或是域名解析提供商,可我不准备这么麻烦,修改远程客户端的hosts文件同样能实现域名解析。
在hosts中添加1条映射
IP ssl-explorer服务器的IP(开始我犯了一个大错误,因为在本机调试,这里配成127.0.0.1,访问没有问题,但是换台电脑就访问不了应用了,所以一定要在远程客户端的电脑里修改hosts,有多个客户端的话统统都要改)
域名 new.se.com
保存hosts文件,在浏览器中输入https://new.se.com:2443,出现SSL-Explorer登陆界面表示配置成功。
下面开始创建基于主机的反向代理应用
?
name : host-based
description : host-based
Destination URL : http://172.7.7.164
Host Header? : new.se.com
Encoding : Default
Authentication Type : None
Policies : Everyone(根据实际情况选择)
?
测试结果:访问应用成功,页面样式和图片都能显示,访问地址自动转向到https://new.se.com:2443/。这种方式允许URL带路径,如http://172.7.7.164/new/。一个域名可被多个反向代理重复使用,但是他们不能同时访问,否则就会出现找不到页面的情况。如果ssl-explorer也是用域名访问的话,那么配置应用时就得使用另外的域名,不能和地址栏里的域名相同,否则访问应用时就会变成访问ssl-explorer了。还有,经过测试得出,反向代理不支持https的应用。